【发布时间】:2016-10-14 05:50:32
【问题描述】:
现在我有一个“登录”JFrame 设置。用户名和密码有 2 个标签和 2 个字段。它们居中并如下所示:
username: |text field|
password: |text field|
JPanel loginLabel = new JPanel(new GridLayout(0, 1, 0, 10));
loginLabel.add(usernameLabel);
loginLabel.add(passwordLabel);
loginLabel.setBackground(new Color(82,80,80));
JPanel loginField = new JPanel(new GridLayout(0, 1, 0, 10));
loginField.add(usernameField);
loginField.add(passwordField);
loginField.setBackground(new Color(82,80,80));
JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
buttonPanel.add(createButton);
buttonPanel.add(loginButton);
buttonPanel.add(quitButton);
buttonPanel.setBackground(new Color(82,80,80));
setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
setBackground(new Color(82,80,80));
add(loginLabel, BorderLayout.CENTER);
add(loginField, BorderLayout.LINE_END);
add(buttonPanel, BorderLayout.SOUTH);
我正在尝试使所有标签和字段都居中,但它们看起来像这样:
Username
|Text Field|
Password
|Text Field|
有人可以帮忙吗?
【问题讨论】:
-
您可以将密码和用户名放在一个面板中,然后您可以将面板的布局设置为BorderLayout。这样做您可以放置用户名NORTH和密码SOUTH,然后将这两个添加到你的 JFrame。
-
如需尽快获得更好的帮助,请发帖minimal reproducible example 或Short, Self Contained, Correct Example。
-
顺便说一句-我的处理方式:1)使用
JPasswordField作为密码,2)在单个面板中显示GridBagLayout中的两个标签以及文本和密码字段. 3) 在JOptionPane中显示该面板,该面板已经具有在用户名/密码字段下方提供所需按钮的功能。
标签: java swing layout jframe layout-manager