大家好,女士们,
当我让 Eclipse WindowBuilder 为我创建一个带有 FormLayout 的 JPanel 时,我想让这个创建是动态的,因为我正在编写的程序需要它这样才能避免 1000 行长。我使用了以下代码:
JPanel pData = new JPanel();
pData.setBounds(10, 232, 381, 163);
FormLayout fLayout= new FormLayout(new ColumnSpec[]{}, new RowSpec[]{});
int numCols = 5;
int numRows = 10;
for(int i=1;i<=numCols;i+=2)
{
fLayout.insertColumn(i, FormFactory.RELATED_GAP_COLSPEC);
fLayout.insertColumn(i+1, FormFactory.DEFAULT_COLSPEC);
}
for(int j=1;j<=numRows;j+=2)
{
fLayout.insertRow(j, FormFactory.RELATED_GAP_ROWSPEC);
fLayout.insertRow(j+1, FormFactory.DEFAULT_ROWSPEC);
}
pData.setLayout(fLayout);
getContentPane().add(pData);
但是启动程序,我得到一堆错误,开始于:
“列索引 1 必须在 [1, 0] 范围内”
更改 for 循环中的索引只会更改此错误文本中间的数字,但其余部分保持不变。
我究竟做错了什么?甚至可以动态创建 FormLayout 吗?我真的很感谢你的帮助!
附加信息:我使用 FormLayout 的原因是,列的大小不同。我知道 GridBagLayout 也可以这样做,但它需要更多的行和数字才能在插入和位置方面获得相同的结果。但如果它是唯一明智的选择,我会接受它......只要它是动态的;-)