如何获取当前单击其单元格的表?

时间:2012-06-04 12:42:32

标签: java swing jtable

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

现在,我将如何知道,最后点击了哪个表格。我在两个表上尝试使用isRowSelected,两个都返回,所以我无法找到最后点击的表格?

有人能帮助我吗?

3 个答案:

答案 0 :(得分:2)

你必须阅读如何

有效,

您必须了解这两个概念,简单示例here,另一个here

答案 1 :(得分: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
}

答案 2 :(得分: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就是这种情况)