【发布时间】:2012-07-23 01:32:42
【问题描述】:
我有一段时间没有使用 MiGLayout,我不记得如何删除组件之间自动放入的空间。我尝试使用以下参数无济于事(注意我要保持水平间距):
无视觉填充
垫0
插入 0
长大了
这是我的意思的一个例子:
我想要的是将行两两分组。所以第一和第二 JTextFields 行之间不应该有间隙。不过,我想保持第二排和第三排之间的差距。我希望将第三行和第四行分组,它们之间没有任何间隙,等等。
这是我的布局代码的相关部分(这是在扩展 JPanel 的类中):
setLayout(new MigLayout("insets 0", "grow"));
//Code to create the JTextFields not shown as it is not relevant
for(int i = 0; i < textFields.length; ++i) {
for(int j = 0; j < textFields[0].length; ++j) {
textFields[i][j].setPreferredSize(new Dimension(80, 50));
if(j == 0 && i % 2 == 0) //If it's the first JTextField in an even row
add(textFields[i][j], "newline, split, gaptop 5, gapright 5");
else if(j == 0 && i % 2 != 0) //If it's the first JTextField in an odd row
add(textFields[i][j], "newline, split, gapright 5");
else //if it's any other JTextField
add(textFields[i][j], "gapright 5");
}
}
所以基本上,我使用循环遍历我的所有组件,然后在奇数行上方设置一个间隙,因为这是我想要组件中的行之间的空间,对于其他组件,我设置了相同的参数,除了那个间隙.
最终,我将把 JPanel 中同一行的所有 JTextField 分组,然后将 JPanel 添加到布局中,但目前这并不重要。
【问题讨论】:
-
我会为此使用 JTable。更好的性能。