使用for循环将摆动组件放在另一个下方?

时间:2014-04-10 00:23:20

标签: java swing user-interface for-loop flowlayout

    //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紧挨着放置。我希望第二次迭代,接下来的两个组件放在前两个组件之下。我正在使用流程布局。

1 个答案:

答案 0 :(得分:1)

  

我正在使用流程布局。

然后你需要使用不同的布局。允许您水平和垂直显示组件的方法。

最简单的是GridLayout,但是所有组件都将以相同的大小显示。另一个选项是GridBagLayout,它为您提供了更大的灵活性,但使用起来更复杂。

阅读Layout Managers上的Swing教程中的部分,并尝试使用不同的布局来查看您要使用的内容。