0
我有一個ListSelectionModel和ListSelectionListener的JTable。ListSelectionModel和監聽器
選擇模型在JTable中構造方法設置:lsm.getSelectionModel()
和ListSelectionListener它通過公用方法設置:
public void setListSelectionListener(ListSelectionListener l){
lsm.addListSelectionListener(l);
}
從Controller類叫做:
view.setTableSelectionListener(new ListSelectionListener(){
@Override
public void valueChanged(ListSelectionEvent e){
if (!e.getValueIsAdjusting()) {
int viewRow = e.getFirstIndex();
System.out.println(viewRow + " is selected");
}
}
});
因爲偵聽器是在另一個類中創建的我不能使用JTable的getSelectedRow();
方法,但使用ListSelectionEvent對象的getFirstIndex();
顯然沒有得到當前的選擇。
所以我現在用int viewRow = ((ListSelectionModel)e.getSource()).getLeadSelectionIndex());
這是否看起來是正確的方式來獲得當前的選擇?它似乎在工作,但我不確定這是否是一種不好的方式。謝謝