首頁 >Java >java教程 >在處理調整大小時,如何將 Swing GroupLayout 管理的表單中標籤的最大寬度限制為父框架寬度的一小部分?

在處理調整大小時,如何將 Swing GroupLayout 管理的表單中標籤的最大寬度限制為父框架寬度的一小部分?

Patricia Arquette
Patricia Arquette原創
2024-12-15 02:25:08111瀏覽

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