【问题标题】:How to scale a JTextField如何缩放 JTextField
【发布时间】:2021-08-18 00:37:28
【问题描述】:

我一直在尝试缩放文本字段以使其更适合我的屏幕,但我不知道我目前如何拥有此代码。

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);

【问题讨论】:

标签: java swing jtextfield


【解决方案1】:
setName = new JTextField("Name:");

通常您不会那样使用 JTextField。相反,您将使用 JLabel 来绘制用户无法更改的文本:

setName = new JLabel("Name:");

我一直在尝试缩放文本字段以使其更适合我的屏幕

所有 Swing 组件都负责确定自己的首选大小。然后布局管理器可以使用此信息根据布局管理器的规则为组件指定大小/位置。

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

//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,并且标签将根据分配给标签的文本确定自己的大小。

【讨论】:

    猜你喜欢
    • 2014-04-18
    • 2013-09-15
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 2017-04-06
    相关资源
    最近更新 更多