我有一个对话框,在这个对话框中我左边有一个列表,右边有一个面板
我使用netbeans的gui builder
创建了这些东西现在对于面板,我有3对标签 - 文本字段
问题在于,根据用户的输入,对可能变为4或5等
所以我不能只使用gui构建器绘制这些对,我需要通过编写代码来创建它们
问题是,为了实现这个目的,我应该使用这种面板的哪种布局?
小组就是那样
label1 textfield
label2 textfield
label3 textfield
empty
empty
etc
这是一张图片:
http://img828.imageshack.us/img828/8894/asdsadc.png
感谢
答案 0 :(得分:2)
我个人更喜欢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
。