0

我在面板中有两张桌子。当我单击某个单元格上的第一个表时,它的行被选中。当我单击某个单元格上的第二个表时,它的行也被选中。

现在,我将如何知道最后点击的是哪个表。我在两张桌子上都试过了isRowSelected,都回来了,所以我找不到最后点击的桌子?

有人可以帮助我吗?

4

3 回答 3

2

你必须阅读如何

作品,

你必须理解这两个概念,简单的例子在这里,另一个在这里

于 2012-06-04T12:47:40.827 回答
1

另一种方法是检查事件的来源:

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,则是这种情况)

于 2012-06-04T13:43:21.990 回答
1

我不知道这是否必须从 MouseListener 或 ListSelectionListener 确定,但最简单的解决方案是相似的:为每个表使用不同的侦听器:

table1.addXxxListener(new XxxListener() {
    // here, you know it's table 1
}


table2.addXxxListener(new XxxListener() {
    // here, you know it's table 2
}
于 2012-06-04T12:48:17.310 回答