Почему JTable всегда вызывает ListSelectionListener дважды? Нормально ли, что любые изменения в выбранной строке JTable будут запускать добавленный ListSelectionListener дважды? Возможно ли, что ListSelectionListener можно запустить только один раз? Ответ 1 Посмотрите на событие, которое передается вашему слушателю, в частности ListSelectionEvent.getValueIsAdjusting() выполнять любые операции, которые вы хотите сделать, когда это возвращает false. Ответ 2 ListSelectionEvent.getValueIsAdjusting() будет работать как комментарий @MeBigFatGuy. Аналогичный пример: if(!e.getValueIsAdjusting()){ String selectedData = null; int selectedRow = table.getSelectedRow(); int selectedColumns = table.getSelectedColumn(); for (int i = 0; i <= selectedRow; i++) { for (int j = 0; j <= selectedColumns; j++) { selectedData = (String) table.getValueAt(selectedRow, selectedColumns); } } System.out.println("Selected: " + selectedData); } он будет запущен только один раз.
Ответ 1 Посмотрите на событие, которое передается вашему слушателю, в частности ListSelectionEvent.getValueIsAdjusting() выполнять любые операции, которые вы хотите сделать, когда это возвращает false.
Ответ 2 ListSelectionEvent.getValueIsAdjusting() будет работать как комментарий @MeBigFatGuy. Аналогичный пример: if(!e.getValueIsAdjusting()){ String selectedData = null; int selectedRow = table.getSelectedRow(); int selectedColumns = table.getSelectedColumn(); for (int i = 0; i <= selectedRow; i++) { for (int j = 0; j <= selectedColumns; j++) { selectedData = (String) table.getValueAt(selectedRow, selectedColumns); } } System.out.println("Selected: " + selectedData); } он будет запущен только один раз.