【问题标题】:BoxLayout and JTextField not working the way I need it toBoxLayout 和 JTextField 无法按我需要的方式工作
【发布时间】:2014-11-09 09:13:53
【问题描述】:

我正在尝试创建一个基本的登录屏幕,但是当我运行它时,文本框很大,并且在我最大化窗口时会增加。如何让它保持固定大小?

public class LoginScreen {

    LoginScreen()
    {
        JFrame frame = new JFrame();
        Box b = Box.createVerticalBox();
        JLabel title = new JLabel("Welcome to login screen");
        b.add(title);
        title.setAlignmentX(JFrame.CENTER_ALIGNMENT);
        title.setFont(title.getFont().deriveFont(20.0f));
        title.setBorder(new EmptyBorder(20,10,20,10));
        Box c = Box.createHorizontalBox();
        JLabel login = new JLabel("Login Id");
        login.setAlignmentX(JFrame.CENTER_ALIGNMENT);
        JTextField loginf = new JTextField("");
        loginf.setAlignmentX(JFrame.CENTER_ALIGNMENT);
        c.add(login);
        c.add(loginf);
        b.add(c);
        frame.add(b);
        frame.setSize(450,350);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new LoginScreen();
            }
        });
    }

}

【问题讨论】:

  • 如果你不使用 Box 而对于 JTextField 使用 setBounds(x,y,width,height)
  • 我尝试为 JTextField 这样做,但它不起作用。另外,我需要 Box 进行格式化,因为 JLabel 和 JTextField 必须在一条直线上。

标签: java jframe jtextfield boxlayout


【解决方案1】:

我意识到它就像使用 setMaximumSize() 一样简单。

https://docs.oracle.com/javase/tutorial/uiswing/layout/box.html#size - 从这里得到它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    相关资源
    最近更新 更多