Rumah >Java >javaTutorial >Bagaimanakah saya boleh mengehadkan lebar maksimum label dalam borang Swing GroupLayout yang diuruskan kepada sebahagian kecil daripada lebar bingkai induk semasa mengendalikan saiz semula?

Bagaimanakah saya boleh mengehadkan lebar maksimum label dalam borang Swing GroupLayout yang diuruskan kepada sebahagian kecil daripada lebar bingkai induk semasa mengendalikan saiz semula?

Patricia Arquette
Patricia Arquetteasal
2024-12-15 02:25:08113semak imbas

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: Mengubah Saiz dan Mengehadkan Saiz Komponen

Soalan

Dalam borang input data yang dijana secara dinamik yang diuruskan oleh Swing's GroupLayout, bagaimana seseorang boleh mengehadkan lebar maksimum label kepada pecahan tertentu lebar bingkai induk, sambil menyesuaikan diri untuk mengubah saiz acara?

Jawab

Untuk mengehadkan lebar label dengan berkesan menggunakan GroupLayout:

  • Gunakan saiz pilihan label, yang secara semula jadi menampung label terbesar.
  • Bergantung pada tingkah laku lalai komponen untuk mengubah saiz.
  • Gunakan GroupLayout.Alignment.TRAILING untuk mewajarkan label ke kanan jika dikehendaki.

Kod Contoh

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))
        );
    }
}

Dalam contoh ini:

  • GroupLayout mengubah saiz label dengan berkesan tanpa manual campur tangan.
  • Medan teks boleh diubah saiz, memastikan penggunaan ruang yang optimum.
  • Label dibenarkan dengan betul menggunakan penjajaran.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengehadkan lebar maksimum label dalam borang Swing GroupLayout yang diuruskan kepada sebahagian kecil daripada lebar bingkai induk semasa mengendalikan saiz semula?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn