После успешного добавления ListSelectionListener и регистрации его действия пользователя мне нужно предварительно выбрать строку в представлении JTable во время инициализации JFrame, содержащего его, из другого класса:
ListSelectionListener
JTable
JFrame
// in constructor rowSM_treatments = table_histories.getSelectionModel(); rowSM_treatments.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { if (e.getValueIsAdjusting()) return; ListSelectionModel lsm = (ListSelectionModel)e.getSource(); if (lsm.isSelectionEmpty()) { System.out.println("No rows are selected."); } else { selectedRow_treatments = lsm.getMinSelectionIndex(); System.out.println("selected Row> " + selectedRow_treatments); //do more }}}); // later on is this method which I mean to call from outside this class public void setSelectedRow(int row){ rowSM_treatments.setLeadSelectionIndex(row); }
Вместо того, чтобы играть с моделью выбора напрямую, я обычно просто обращаюсь к столу:
table.changeSelection(row, 0, false, false);
Так что, пока ваш другой класс имеет ссылку на таблицу, вы можете делать это.