簡體   English   中英

如何使用Java在面板內手動添加帶有文本字段的標簽

[英]how to add manually a label with a text field inside a panel using Java

我有一個對話框,在這個對話框中我左邊有一個列表,右邊有一個面板

我使用netbeans的gui builder創建了這些東西

現在對於面板,我有3對標簽 - 文本字段

問題是,根據用戶的輸入,對可能變為4或5等

所以我不能只使用gui構建器繪制這些對,我需要通過編寫代碼來創建它們

問題是,為了達到這個目的,我應該使用這種面板的哪種布局?

小組就是這樣的

label1 textfield
label2 textfield
label3 textfield
empty
empty
etc

這是一張圖片:

謝謝

我個人更喜歡GroupLayout來完成這些任務。

以下GroupLayout的屏幕截圖

GroupLayout layout = new GroupLayout(container);
container.setLayout(layout);
layout.setAutoCreateContainerGaps(true);
layout.setAutoCreateGaps(true);

Group groupLabels = layout.createParallelGroup();
Group groupFields = layout.createParallelGroup();
Group groupRows = layout.createSequentialGroup();

layout.setHorizontalGroup(layout.createSequentialGroup()
    .addGroup(groupLabels)
    .addGroup(groupFields));
layout.setVerticalGroup(groupRows);

for (int i = 0; i < 5; i++) {
    JLabel label = new JLabel("ABCDEFGHIJ".substring(0, 2 + 2 * i));
    JTextField field = new JTextField("ABCDEFGHIJ".substring(0, 2 + 2 * i));

    groupLabels.addComponent(label);
    groupFields.addComponent(field);
    groupRows.addGroup(layout.createParallelGroup()
        .addComponent(label)
        .addComponent(field, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE));
}

如果要動態添加更多行,您唯一需要做的就是將相應的組件添加到三個組中,並在容器上調用validate

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM