Сделать только один флажок, который можно выбрать в столбце JTable

87
9

У меня есть JTable с 2 coloumns, один столбец - тип объекта, второй столбец - флажок. В этой таблице пользователь хочет выбрать только один флажок. Я пробовал много кодов (Примеры: jtable checkbox single selection и Второй), наконец, я сделал это, используя функцию.


Вот моя функция:


    public void setSelectionEnableOrDisable(JTable table) {
int earlierSelectionRow = 0;
int selectedRow = table.getSelectedRow();
for (int i = 0; i < table.getRowCount(); i++) {
if ((Boolean) table.getValueAt(i, 1) == true && i != selectedRow) {
earlierSelectionRow = i;
}
}
table.setValueAt(true, selectedRow, 1);
table.setValueAt(true, earlierSelectionRow, 1);
}

Но, в чем проблема с этим, когда я нажимаю на checbox медленно, это хорошо. если я быстро нажимаю 2 или 3 флажка, тогда мой код позволяет многократно выбирать. Что здесь не так?

спросил(а) 2021-01-19T18:43:57+03:00 2 месяца, 3 недели назад
1
Решение
62

Я думаю, вы можете сделать это проще, например:

 public void setSelectionEnableOrDisable(JTable table) {

int selectedRow = table.getSelectedRow();
if ((Boolean)table.getValueAt(selectedRow , 1)) {
for (int i = 0; i < table.getRowCount(); i++) {
if ( i != selectedRow) {
table.setValueAt(false, i, 1);
}
}

}

ответил(а) 2021-01-19T18:43:57+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема