//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挨着放置。我希望在第二次迭代中,下两个组件放在前两个组件的下面。我使用的是流动布局。
我使用的是流动布局。
然后你需要使用不同的布局。一种允许水平和垂直显示零部件的方法。
最简单的是GridLayout,但随后所有组件都将以相同的大小显示。另一个选项是GridBagLayout,它给你更多的灵活性,但使用起来更复杂。
阅读Swing教程中关于布局管理器的部分,并尝试不同的布局,看看您想要使用什么。