我想设计一个简单的表单,有 5 个组件:
2 个标签、1 个测试字段、1 个密码文本字段和 1 个按钮。我想要一个标签,然后是文本字段。
向下一行(或更多,应该可以看到一个漂亮的空间)我想要第二个标签,密码文本字段就在右边。
在它下面的第三行,在中间,我想要按钮。
我正在尝试在没有 WindowsBuilder 或任何辅助工具的情况下执行此操作,但是,我是 Java 的新手。
package HR;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JFormattedTextField;
import javax.swing.JButton;
import java.awt.GridLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class SignIn extends JFrame
{
/**
*
*/
private static final long serialVersionUID = 1L;
public SignIn()
{
this.setTitle("HR SYSTEM LOGIN SCREEN");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setBounds(100, 100, 308, 179);
JPanel contentPane = new JPanel();
this.getContentPane().add(contentPane);
JLabel userName = new JLabel("User Name");
contentPane.add(userName);
JLabel password = new JLabel("Password");
contentPane.add(password);
JFormattedTextField userText = new JFormattedTextField();
contentPane.add(userText);
JPasswordField passwordText = new JPasswordField();
contentPane.add(passwordText);
JButton signButton = new JButton("Sign In");
contentPane.add(signButton);
}
}
最佳答案
对于 WindowsBuilder,我会使用 GroupLayout (标准 API),MigLayout (第三方)或 JGoodies FormLayout (第三者)。他们都得到了很好的支持,并且会做你想做的事。如果您打算手动编写 UI 代码(为什么?),MigLayout 是一个不错的选择。
WindowsBuilder 文档和优点:
- GroupLayout :非常灵活的布局管理器,专为 GUI Builders 使用而设计。一种流行的 Swing 开发组合是 Netbeans Swing GUI Builder (Matisse)和 GroupLayout(但 WindowsBuilder 也做得很棒)。作为 Java 开发人员很长一段时间,在 WindowsBuilder Pro 被 Google 收购并免费提供之前,我曾经打开 Netbeans 窗口只是为了构建 UI :)。该布局使用分层组加上大小调整和锚定策略,与 Delphi 中的处理方式非常相似。
- MigLayout : 自首次发布以来已经走了很长一段路。作为“用于 Java 的最通用和最灵活的 Swing 和 SWT 布局管理器”获得了动力(引用 WindowsBuilder 文档)。它很容易与 GUI Builder 一起使用或手动使用。使用字符串常量或 API 检查约束。
- JGoodies FormLayout :曾经是构建 Swing Forms 的非官方标准。它是一个灵活而精确的 UI 管理器,可以与 JGoodies Looks 结合使用。以获得非常好的跨平台体验。它也可以手动使用,但在与智能 GUI 编辑器(如 IntelliJ IDEA Swing GUI Designer)结合使用时真正发挥作用。 (WindowsBuilder 也可以)。它使用带有字符串描述和组件构建器的网格布局系统,使一切变得简单明了。
个人观点:
我是新来的!我不知道该用什么: 使用 GroupLayout,它是标准的,不需要第三方 jar 文件。克制手动编辑 UI 代码的冲动(认真的!)。
但我想手动编辑 UI 代码: 好的,使用 MigLayout,好的组件,很多易于掌握的字符串常量。
当我在不同的操作系统中打开我的应用程序时,UI 未正确呈现:使用 JGoodies 组合并遵循开发指南,同时遵循 UI Builder 提示添加间隙和额外的空白空间和约束无处不在。这在你的机器上可能看起来是一种浪费,但是一旦你处理不同的操作系统,运行不同的桌面环境,使用不同的字体 DPI,UI 仍然可以使用,因为你付出了额外的努力。
关于java - 使用哪种布局以及如何使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21704278/