首页 >Java >java教程 >在处理调整大小时,如何将 Swing GroupLayout 管理的表单中标签的最大宽度限制为父框架宽度的一小部分?

在处理调整大小时,如何将 Swing GroupLayout 管理的表单中标签的最大宽度限制为父框架宽度的一小部分?

Patricia Arquette
Patricia Arquette原创
2024-12-15 02:25:08109浏览

How can I limit the maximum width of labels in a Swing GroupLayout-managed form to a fraction of the parent frame's width while handling resizing?

Swing GroupLayout:调整大小和限制组件大小

问题

在由 Swing 的 GroupLayout 管理的动态生成的数据输入表单中,如何限制将标签的最大宽度调整为父框架宽度的特定部分,同时适应调整大小事件?

答案

要使用 GroupLayout 有效限制标签宽度:

  • 利用标签的首选大小,它自然会容纳最大的标签。
  • 依赖组件的默认行为来调整大小。
  • 利用如果需要,GroupLayout.Alignment.TRAILING 用于右对齐标签。

示例代码

import javax.swing.GroupLayout;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class LabelWidthLimitPanel extends JPanel {

    private JLabel label1 = new JLabel("Primary:");
    private JTextField field1 = new JTextField(16);
    private JLabel label2 = new JLabel("Secondary:");
    private JTextField field2 = new JTextField(16);
    private JLabel label3 = new JLabel("Tertiary:");
    private JTextField field3 = new JTextField(16);

    public LabelWidthLimitPanel() {
        GroupLayout layout = new GroupLayout(this);          
        this.setLayout(layout);
        layout.setAutoCreateGaps(true);
        layout.setAutoCreateContainerGaps(true);
        layout.setHorizontalGroup(layout.createSequentialGroup()
            .addGroup(layout.createParallelGroup(GroupLayout.Alignment.TRAILING)
                .addComponent(label1)
                .addComponent(label2)
                .addComponent(label3))
            .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
                .addComponent(field1)
                .addComponent(field2)
                .addComponent(field3))
        );
        layout.setVerticalGroup(layout.createSequentialGroup()
            .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                .addComponent(label1)
                .addComponent(field1))
            .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                .addComponent(label2)
                .addComponent(field2))
            .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                .addComponent(label3)
                .addComponent(field3))
        );
    }
}

在此示例中:

  • GroupLayout 有效调整大小标签无需手动干预。
  • 文本字段可调整大小,确保最佳使用空格。
  • 标签使用对齐方式右对齐。

以上是在处理调整大小时,如何将 Swing GroupLayout 管理的表单中标签的最大宽度限制为父框架宽度的一小部分?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn