//creating two lists of gui components
ArrayList<JLabel> labelList = new ArrayList<JLabel>();
ArrayList<JTextField> textFieldList = new ArrayList<JTextField>();
//number of labels and textfields i want to add
int numOfAt = Data.getInstance().getInstances().numAttributes();
//for loop, for adding these components
for (int i = 0; i < numOfAt - 1; i++) {
String name = Data.getInstance().getInstances().attribute(i).name();
labelList.add(new JLabel(name));
labelList.get(i).setText(name);
textFieldList.add(new JTextField());
add(labelList.get(i));
add(textFieldList.get(i));
textFieldList.get(i).setSize(55, 25);
}
这些代码有效。标签和字段添加在我的jPanel上。但我找不到解决方案如何将它们放在另一个之下。在for循环的第一次迭代中,jLabel和jTextField紧挨着放置。我希望第二次迭代,接下来的两个组件放在前两个组件之下。我正在使用流程布局。
答案 0 :(得分:1)
我正在使用流程布局。
然后你需要使用不同的布局。允许您水平和垂直显示组件的方法。
最简单的是GridLayout,但是所有组件都将以相同的大小显示。另一个选项是GridBagLayout,它为您提供了更大的灵活性,但使用起来更复杂。
阅读Layout Managers上的Swing教程中的部分,并尝试使用不同的布局来查看您要使用的内容。