Java JTable SelectionListener

时间:2012-02-26 23:34:19

标签: java swing jtable listener listselectionlistener

我有两个 JTables 在JPanel上填充了数据。用户正在尝试通过选择行并单击“删除”按钮从其中一个表中删除一行。对我来说问题是如何弄清楚两个 JTable 中哪一个最后关注(用户可以点击表1中的行然后在表2中的行,然后“删除”,我想要从表2中删除行)。我会这样看:

当选择了一行时,

表添加了 ListSelectionListener 来触发事件 valueChanged ,但是现在我必须以某种方式通知包含这两个表的组件最后一次

有谁知道如何解决这个问题?如果你能提供一些示例代码,请非常感谢。

2 个答案:

答案 0 :(得分:5)

您可以使用您收到的事件的'getSource'方法来确定生成事件的表格。例如,

public void valueChanged(ListSelectionEvent e) {
    if (e.getSource() == jTable1.getSelectionModel()) {
      System.out.println("Event occurred in table 1");
    } else if (e.getSource() == jTable2.getSelectionModel()) {
      System.out.println("Event occurred in for table 2");
    }
}

答案 1 :(得分:2)

将FocusListener注册到两个表以跟踪最后关注的表。

可以在http://docs.oracle.com/javase/tutorial/uiswing/events/focuslistener.html

找到更多信息