Я пытаюсь настроить JRadioButton-Matrix, чтобы в каждом столбце и в каждой строке одновременно можно было выбрать только одну кнопку. У меня есть следующий код:
JRadioButton[][] button = new JRadioButton[names.length][names.length];
ButtonGroup[] r = new ButtonGroup[names.length];
ButtonGroup[] c = new ButtonGroup[names.length];
for (int i = 0; i < names.length; i++) {
r[i] = new ButtonGroup();
c[i] = new ButtonGroup();
}
for (int i = 0; i < names.length; i++) {
for (int j = 0; j < names.length; j++) {
button[i][j] = new JRadioButton();
r[i].add(button[i][j]);
c[j].add(button[i][j]);
}
}
Но когда я его выполняю, правильно ведут себя только столбцы (т.е. кнопки в группах c). Однако, когда я комментирую части с помощью c, строки ведут себя правильно.
Чтобы немного прояснить ситуацию (спасибо peeskillet):
Допустим, у меня есть эта матрица 4 x 4 JRadioButtons:
O O O O
O O O O
O O O O
O O O O
И я хочу, чтобы можно было делать такие выборы:
X O O O X O O O O X O O
O X O O O O X O X O O O
O O X O O X O O O O O X
O O O X O O O X O O X O
В приведенном выше примере в каждом столбце есть только один, а в каждой строке — только один. Следующие примеры НЕ были бы возможны:
X X O O X O O O
O O O O O X O O
O O X O O X O O
O O O X O O O X
Однако проблема в том, что я МОГУ выбрать, как в приведенной выше левой матрице, но не в правой. Если я прокомментирую следующие части:
ButtonGroup[] c = new ButtonGroup[names.length];
c[i] = new ButtonGroup();
c[j].add(button[i][j]);
тогда матрица сверху справа возможна, но не слева.
ButtonGroup
должно быть решением. - person Andrew Thompson   schedule 25.12.2013JRadioButton jrb = new JRadioButton(); r[i].add(jrb); c[j].add(jrb);
- person Siva Tumma   schedule 25.12.2013