gpt4 book ai didi

java - 使用哪种布局以及如何使用?

转载 作者:行者123 更新时间:2023-11-29 06:35:28 24 4
gpt4 key购买 nike

我想设计一个简单的表单,有 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com