Java 如何缩放JTextField

Java 如何缩放JTextField,java,swing,jtextfield,Java,Swing,Jtextfield,我一直在尝试缩放一个文本字段,以便它更适合我的屏幕,但我不知道我目前是如何拥有这段代码的 public class Screen extends JFrame { private JPanel screen; private JTextField nameField, setName; private JButton button; public Screen() { screen = new JPanel(new FlowLayout(0, 0, FlowLayout.LEADING

我一直在尝试缩放一个文本字段,以便它更适合我的屏幕,但我不知道我目前是如何拥有这段代码的

public class Screen extends JFrame {
private JPanel screen;
private JTextField nameField, setName;
private JButton button;

public Screen() {
    screen = new JPanel(new FlowLayout(0, 0, FlowLayout.LEADING));
    nameField = new JTextField();
    button = new JButton("Confirm");
    setName = new JTextField("Name:");

    button.setAlignmentX(Component.CENTER_ALIGNMENT);

    setName.setEditable(false);
    setName.setPreferredSize(new Dimension(20,20));

    screen.setLayout(new BoxLayout(screen, BoxLayout.Y_AXIS));
    screen.setBorder(BorderFactory.createEmptyBorder(50, 5, 5, 5));

    screen.add(setName);
    screen.add(nameField);
    screen.add(button);

    this.add(screen);
    setPreferredSize(new Dimension(960,540));
    setTitle("My Game!!!");
    setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    pack();
    setLocationRelativeTo(null);
    setVisible(true);
通常,您不会以这种方式使用JTextField。相反,您可以使用
JLabel
绘制用户无法更改的文本:

setName = new JLabel("Name:");
我一直在尝试缩放文本字段,以便它更适合我的屏幕

所有回转组件负责确定其自身的首选尺寸。然后,布局管理器可以使用此信息根据布局管理器的规则为零部件提供尺寸/位置

在您的情况下,您可以使用:

//nameField = new JTextField();
nameField = new JTextField(10);
现在,在文本开始滚动之前,文本字段的大小将调整为包含10个“W”字符。根据需要调整列值

setPreferredSize(new Dimension(960,540));
不要试图设置帧的首选大小。
pack()
方法将根据添加到框架中的所有组件的首选尺寸设置框架的尺寸

//setName.setEditable(false);
//setName.setPreferredSize(new Dimension(20,20));
不需要上述说明,因为您现在将使用JLabel,标签将根据分配给标签的文本确定其自身的大小。

更好的“安装”是指占用所有可用空间?请参阅:。
//setName.setEditable(false);
//setName.setPreferredSize(new Dimension(20,20));