gpt4 book ai didi

java - 如何删除 MiGLayout 中组件之间的空间

转载 作者:搜寻专家 更新时间:2023-11-01 01:22:50 25 4
gpt4 key购买 nike

我有一段时间没有使用 MiGLayout,我不记得如何删除组件之间自动放置的空间。我尝试使用以下参数无济于事(请注意,我想保持水平间距):

novisualpadding

填充 0

插入 0

成长

这是我的意思的一个例子: Space between components

我想要的是将行两两分组。因此,第一行和第二行 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 中同一行的所有 JTextFields 分组,并将 JPanels 添加到布局中,但这不是目前最重要的。

最佳答案

您必须明确设置一个 0 宽度的间隙,因为默认值是依赖于平台的“相关”间隙。您可以在布局级别或行/列级别执行此操作。例如:

setLayout(new MigLayout("gap rel 0", "grow"));

然后您可以对奇数行使用现有的约束。

关于java - 如何删除 MiGLayout 中组件之间的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11605450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com