我正在开发一个带有不同行的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