Вызывает listselectionlistener JTable - PullRequest
1 голос
/ 08 ноября 2011

После успешного добавления 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);       
     }

1 Ответ

1 голос
/ 08 ноября 2011

Вместо того, чтобы играть с моделью выбора напрямую, я обычно просто обращаюсь к столу:

table.changeSelection(row, 0, false, false);

Так что, пока ваш другой класс имеет ссылку на таблицу, вы можете делать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...