我在面板中有两张桌子。当我单击某个单元格上的第一个表时,它的行被选中。当我单击某个单元格上的第二个表时,它的行也被选中。
现在,我将如何知道最后点击的是哪个表。我在两张桌子上都试过了isRowSelected
,都回来了,所以我找不到最后点击的桌子?
有人可以帮助我吗?
另一种方法是检查事件的来源:
new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
if (e.getSource()==table1.getSelectionModel()) {
// Event comes from table1
} else if (e.getSource()==table2.getSelectionModel()) {
// Event comes from table2
}
}
}
当然,只有单个表使用选择模型时,这是正确的(如果您没有设置自己的ListSelectionModel,则是这种情况)
我不知道这是否必须从 MouseListener 或 ListSelectionListener 确定,但最简单的解决方案是相似的:为每个表使用不同的侦听器:
table1.addXxxListener(new XxxListener() {
// here, you know it's table 1
}
table2.addXxxListener(new XxxListener() {
// here, you know it's table 2
}