J'ai un JTable avec ListSelectionModel et ListSelectionListener.ListSelectionModel et listener
Le modèle de sélection est défini dans le constructeur JTables: lsm.getSelectionModel()
et ListSelectionListener est réglée par une méthode publique:
public void setListSelectionListener(ListSelectionListener l){
lsm.addListSelectionListener(l);
}
appelé de la classe contrôleur:
view.setTableSelectionListener(new ListSelectionListener(){
@Override
public void valueChanged(ListSelectionEvent e){
if (!e.getValueIsAdjusting()) {
int viewRow = e.getFirstIndex();
System.out.println(viewRow + " is selected");
}
}
});
parce que l'écouteur est créé dans une autre classe Je ne peux pas utiliser la méthode getSelectedRow();
de JTable, mais en utilisant l'objet ListSelectionEvent de getFirstIndex();
n'obtient évidemment pas la sélection actuelle.
Je me sers maintenant int viewRow = ((ListSelectionModel)e.getSource()).getLeadSelectionIndex());
Est-ce que semble comme la bonne façon d'obtenir la sélection en cours? Cela semble fonctionner, mais je ne suis pas sûr que ce soit une mauvaise façon de le faire. Merci