しばらくMiGLayoutを使用しておらず、コンポーネント間に自動的に配置されるスペースを削除する方法を思い出せません。次のパラメータを使用してみましたが、役に立ちませんでした(水平方向の間隔を維持したいことに注意してください)。
novisualpadding
パッド0
インセット0
成長する
これが私が意味することの例です:
私が欲しいのは、行を2つずつグループ化することです。したがって、最初と2番目のJTextFields行の間にギャップがあってはなりません。でも、2列目と3列目のギャップを保ちたいです。3列目と4列目は隙間なくグループ化してほしい。
これが私のコードのレイアウトに関連する部分です(これは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をグループ化し、代わりにJPanelsをレイアウトに追加しますが、現時点では重要ではありません。