Я хочу изменить выбор в JTable. Типичным подходом является очистка и повторный выбор в соответствии с предложением здесь :
ListSelectionModel model = table.getSelectionModel();
model.clearSelection();
model.addSelectionInterval(1, 1);
model.addSelectionInterval(18, 18);
К сожалению, clearSelection немедленно обновляет интерфейс. Таким образом, если вы выполните этот код, выбор исчезнет, а затем снова вернется, что может привести к мерцанию.
Я пытался запретить обновление пользовательского интерфейса, игнорируя изменения. Однако следующее не работает:
model.setValueIsAdjusting( true );
model.clearSelection();
model.setValueIsAdjusting( false );
Кажется, флаг игнорируется в пользовательском интерфейсе. Также удаление и повторное добавление ListSelectionListeners до, соответственно, после clearSelection не работало. Пользовательский интерфейс все еще обновляется и может мерцать.
Есть ли лучший подход для изменения полного выбора JTable с несколькими строками, возможно, не в непрерывном выделении?
Для меня это не главная проблема, потому что вам действительно нужно искать мерцание. Тем не менее, это не оптимально.