Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Mengehadkan Lebar JLabel dalam GroupLayout Swing Sambil Mengekalkan Responsif kepada Pengubah Saiz Bingkai?

Bagaimanakah Saya Boleh Mengehadkan Lebar JLabel dalam GroupLayout Swing Sambil Mengekalkan Responsif kepada Pengubah Saiz Bingkai?

Susan Sarandon
Susan Sarandonasal
2024-12-10 10:10:16391semak imbas

How Can I Limit JLabel Width in Swing's GroupLayout While Maintaining Responsiveness to Frame Resizing?

Mengubah Saiz dan Mengehadkan Saiz Komponen dalam Swing GroupLayout

Swing's GroupLayout menyediakan pengurusan susun atur yang fleksibel untuk antara muka pengguna yang kompleks. Walau bagaimanapun, mengawal saiz komponen dalam GroupLayout boleh menjadi mencabar apabila berurusan dengan saiz semula dinamik. Artikel ini akan membentangkan penyelesaian untuk mengehadkan lebar maksimum label komponen dalam GroupLayout sambil mengekalkan tindak balasnya terhadap perubahan saiz bingkai.

Isunya

Pertimbangkan GroupLayout dengan kumpulan selari untuk susun atur mendatar dan kumpulan berjujukan untuk susun atur menegak, sebagai berikut:

*-----------------------------------------------*
| label A     |   field A                       | 
| label B     |   field B                       |
| label C     |   field C                       |
*-----------------------------------------------*

Tugasnya adalah untuk mengehadkan lebar label (contoh JLabel) kepada satu pertiga daripada lebar bingkai manakala bingkai boleh diubah saiznya.

Penyelesaian

1. Bergantung pada Saiz Pilihan

Daripada menetapkan kekangan saiz secara manual, GroupLayout boleh menggunakan saiz pilihan label. Label mempunyai saiz pilihan lalai yang menyesuaikan dengan kandungan teksnya. Secara lalai, GroupLayout menghormati saiz pilihan ini untuk tingkah laku saiz semula komponen.

2. Penjajaran GroupLayout

Untuk menjustifikasikan label, GroupLayout.Alignment.TRAILING boleh digunakan:

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

3. Contoh Kod

Kod berikut menunjukkan pelaksanaan penyelesaian ini:

public class GroupPanel 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 GroupPanel(int n) {

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengehadkan Lebar JLabel dalam GroupLayout Swing Sambil Mengekalkan Responsif kepada Pengubah Saiz Bingkai?. 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