我正在開發一個帶有不同行的JTable。我想將一個事件關聯到此表中選定的行。我已經使用以下選擇類,以提供行爲表中選擇:在JTable中實現選擇監聽器時的問題
public class TableSelectionListener implements ListSelectionListener{
public Integer item;
public TableSelectionListener(Integer item){
this.dialog = item;
}
public void valueChanged(ListSelectionEvent e) {
System.out.println("The row clicked is "+item);
}
}
當我創建該表的一個實例,賽tabletest,我已經添加了下面的代碼段:
tabletest.getSelectionModel().addListSelectionListener(new TableSelectionListener(tabletest.getSelectedRow());
問題是,當我單擊一行一次,而不是一次檢索相關消息時,我多次檢索相同的消息,表明這些操作重複多次。例如:
The row clicked is 0
The row clicked is 0
The row clicked is 0
The row clicked is 0
有沒有人知道問題出在哪裏?
好了,這是行不通的:如果我點擊第二排和第三排的消息輸出是正確的:「點擊該行1」和「點擊的行是2」。但是,當我點擊第一行而不是給我0它再次給我2 – Anto 2010-09-23 16:18:39
另一種方法是從表中向聽衆詢問選擇了哪些行。 – Carlos 2010-09-23 21:48:18
'e.getFirstIndex()'不是很可靠。使用table.getSelectedRow() - 它更穩定。 – 2010-09-24 14:17:37