如何使用BorderLayout(Java)扩展JTextField

Xun*_*nil 2 java swing

我有一个Java程序,其中,我正在使用JTextField,但如果我没有指定默认大小,它将具有宽度0.我将它插入BorderLayout,所以我该如何制作它扩展以填充整个容器?

Asc*_*ian 5

在上面的示例中,文本字段将正常工作.但是,如果您插入EAST或WEST,它将无法正常工作.

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JTextField;


public class TextFieldTest {
    public static void main(String[] args) {
        JFrame f = new JFrame();
        f.setLayout(new BorderLayout());
        JTextField tf = new JTextField();
        f.getContentPane().add(BorderLayout.EAST, tf);
        f.pack();
        f.setVisible(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:这需要是BorderLayout还是你可以使用其他布局管理器?如果可以,您应该检查GridBagLayout,您可以使用元素自动展开(使用权重)以适合整个容器.

  • 在这里,有一个快艇 (3认同)