Есть ли способ прослушивать выбор ячеек даже на уже выбранных ячейках с JTable
, кроме использования MouseListener
?Слушайте выбор в уже выбранной ячейке для JTable
У меня есть JTable с прослушивателем строк и столбцов. Ни один из слушателей не срабатывает при выборе уже выбранной ячейки:
JTable table() {
JTable table = new JTable(10, 10);
table.getSelectionModel().addListSelectionListener(rowListener);
table.getColumnModel().getSelectionModel().addListSelectionListener(colListener);
return table;
}
ListSelectionListener rowListener = event -> {
if(event.getValueIsAdjusting())
return;
System.out.println("Row: "+((ListSelectionModel) event.getSource()).getMinSelectionIndex());
};
ListSelectionListener colListener = event -> {
if(event.getValueIsAdjusting())
return;
System.out.println("Col: "+((ListSelectionModel) event.getSource()).getMinSelectionIndex());
};
Моя цель состояла в том, чтобы включать/выключать ячейки. Он работает, за исключением того факта, что слушатели не срабатывают при выборе уже выбранной ячейки, которая представлена через SSCCE выше.
Нет, я не могу прослушивать JTable
(или это модели/модели выбора), чтобы обработать это, если бы я не использовал MouseListener
и не мог вручную управлять cooridnates. Используя TableModelListener
, я могу прослушивать изменения, но это событие нацелено на предыдущую ячейку (которая была отменена), и щелчок по области, которая не выбирает ячейку, приведет к тому, что этот прослушиватель загорится.