まず、テキスト フィールドに配列を使用できます。
JTextField[][] matrix1TextFields, matrix2TextFields, matrix3TextFields;
private void refreshMatrixComponents(int r, int c) {
matrix1TextFields = new JTextField[r][c];
matrix2TextFields = new JTextField[r][c];
matrix3TextFields = new JTextField[r][c];
for (int row = 0; row < r; row++) {
for (int col = 0; col < c; col++) {
matrix1TextFields[row][col] = new JTextField();
matrix2TextFields[row][col] = new JTextField();
matrix3TextFields[row][col] = new JTextField();
}
}
placeMatrixTextField();
}
レイアウト マネージャーには、多くのオプションがあります。GridLayout
(非常に使いやすい)またはGridBagLayout
(より使いにくいが、より柔軟)またはサードパーティのようなものMigLayout
(構文に少し飛び込む必要がありますが、努力する価値があると思います)のいずれかをお勧めします。JPanel
また、すべてのマトリックスを作成し、そこにすべてのテキスト フィールドを配置することもお勧めします。次に、それらJPanels
と残りのコンポーネントを配置します。
JPanel matrix1Panel, matrix2Panel, matrix3Panel;
private void placeMatrixTextField() {
int r = matrix1TextFields.length, c = matrixTextFields[0].length;
matrix1Panel = new JPanel();
matrix2Panel = new JPanel();
matrix3Panel = new JPanel();
matrix1Panel.setLayout(new GridLayout(r, c));
matrix2Panel.setLayout(new GridLayout(r, c));
matrix3Panel.setLayout(new GridLayout(r, c));
for (int row = 0; row < r; row++) {
for (int col = 0; col < c; col++) {
matrix1Panel.add(matrix1TextFields[row][col]);
matrix2Panel.add(matrix2TextFields[row][col]);
matrix3Panel.add(matrix3TextFields[row][col]);
}
}
// now place your panels
}