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
Lepaskan: 2024-12-15 02:25:08
asal
112 orang telah melayarinya

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))
        );
    }
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan