Java JTable SelectionListener

Java JTable SelectionListener,java,swing,jtable,listener,listselectionlistener,Java,Swing,Jtable,Listener,Listselectionlistener,我有两个JTables在一个JPanel上填充了数据。用户试图通过选择某一行并单击“删除”按钮从其中一个表中删除该行。我的问题是如何确定两个JTables中的哪一个是最后一个关注的(用户可以单击表1中的行,然后单击表2中的行,然后单击“删除”,我想从表2中删除行)。我可能会这样看: 表中添加了ListSelectionListener,在选择行时触发事件valueChanged,但现在我必须以某种方式通知包含这两个表的组件最后选择了哪一个表 有人知道我如何解决这个问题吗?如果您能提供一些示例代码

我有两个JTables在一个JPanel上填充了数据。用户试图通过选择某一行并单击“删除”按钮从其中一个表中删除该行。我的问题是如何确定两个JTables中的哪一个是最后一个关注的(用户可以单击表1中的行,然后单击表2中的行,然后单击“删除”,我想从表2中删除行)。我可能会这样看:

表中添加了ListSelectionListener,在选择行时触发事件valueChanged,但现在我必须以某种方式通知包含这两个表的组件最后选择了哪一个表


有人知道我如何解决这个问题吗?如果您能提供一些示例代码,我们将不胜感激。

将FocusListener注册到两个表中以跟踪最后聚焦的表


更多信息可在

中找到。您可以使用正在接收的事件的“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");
    }
}

听起来像是一个非常脆弱的设置-如果点击没有改变选择怎么办?事实上,无论使用何种通知,都很难安全地实现“最后一个被点击”的整个概念:焦点可能会稍微好一点。无论如何,您需要通过更改按钮的文本或在表格中使用特殊的高亮颜色或其他方式,让用户完全清楚地知道他/她将从哪个表格中删除f.i。。。