ホームページ >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 によって管理される動的に生成されたデータ入力フォームで、コンポーネントのサイズを制限するにはどうすればよいですか?サイズ変更に適応しながら、ラベルの最大幅を親フレームの幅の特定の割合に調整しますevents?

回答

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。