如何使用Java在面板内手动添加带有文本字段的标签

如何使用Java在面板内手动添加带有文本字段的标签,java,label,panel,textfield,Java,Label,Panel,Textfield,我有一个对话框,在这个对话框的左边有一个列表,右边有一个面板 我使用netbeans的gui构建器创建了这些东西 现在对于面板,我有3对label-textfield 问题在于,根据用户的输入,配对可能变成4或5等 因此,我不能仅仅使用gui生成器绘制这些对,我需要通过编写代码来创建它们 问题是,为了实现这一点,我应该为这个面板使用什么样的布局 小组是这样的 label1 textfield label2 textfield label3 textfield empty empty etc 这

我有一个对话框,在这个对话框的左边有一个列表,右边有一个面板

我使用netbeans的gui构建器创建了这些东西

现在对于面板,我有3对label-textfield

问题在于,根据用户的输入,配对可能变成4或5等

因此,我不能仅仅使用gui生成器绘制这些对,我需要通过编写代码来创建它们

问题是,为了实现这一点,我应该为这个面板使用什么样的布局

小组是这样的

label1 textfield
label2 textfield
label3 textfield
empty
empty
etc
这是一张照片:

谢谢

就我个人而言,我更喜欢这样的任务

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

GroupLayout=newgrouplayout(容器);
容器。设置布局(布局);
layout.setAutoCreateContainerGaps(真);
layout.setAutoCreateGaps(真);
Group groupLabels=layout.createParallelGroup();
Group groupFields=layout.createParallelGroup();
Group groupRows=layout.createSequentialGroup();
layout.setHorizontalGroup(layout.createSequentialGroup()
.addGroup(组标签)
.addGroup(groupFields));
layout.setVerticalGroup(groupRows);
对于(int i=0;i<5;i++){
JLabel=newjlabel(“ABCDEFGHIJ.”子串(0,2+2*i));
JTextField=newjtextfield(“ABCDEFGHIJ.”子串(0,2+2*i));
groupLabels.addComponent(标签);
groupFields.addComponent(字段);
groupRows.addGroup(layout.createParallelGroup()
.addComponent(标签)
.addComponent(字段、GroupLayout.PREFERRED_SIZE、GroupLayout.DEFAULT_SIZE、GroupLayout.PREFERRED_SIZE));
}
如果要动态添加更多行,唯一需要做的就是将相应的组件添加到三个组中,并在容器上调用
validate