自动创建JLabel应该在他们自己之下

时间:2013-07-17 21:27:01

标签: java swing jlabel

我有一个自动创建jlabels的代码。

我希望每个label都在一行,而不是旁边!

我使用此代码:

            lbl = new JLabel[rows];
        for (int i = 0; i < rows; i++) {
            lbl[i] = new JLabel(arrayResultRow[i].toString()+ "\n" );
        }

\n不起作用!

1 个答案:

答案 0 :(得分:3)

Google并学习Java Swing布局管理器教程并开始阅读。

可能您将JLabel添加到默认情况下使用FlowLayout的JPanel,您需要将容器的布局更改为GridLayout或BoxLayout。

编辑:这是链接:Laying out Components

即,

// add JLabels to a JPanel that uses GridLayout set to have
// 1 column and "rows" number of rows.
JPanel labelHolder = new JPanel(new GridLayout(rows, 1);
lbl = new JLabel[rows];
for (int i = 0; i < rows; i++) {
  lbl[i] = new JLabel(arrayResultRow[i].toString());
  labelHolder.add(lbl[i]);
}