我有两个 JTables 在JPanel上填充了数据。用户正在尝试通过选择行并单击“删除”按钮从其中一个表中删除一行。对我来说问题是如何弄清楚两个 JTable 中哪一个最后关注(用户可以点击表1中的行然后在表2中的行,然后“删除”,我想要从表2中删除行)。我会这样看:
当选择了一行时,表添加了 ListSelectionListener 来触发事件 valueChanged ,但是现在我必须以某种方式通知包含这两个表的组件最后一次
有谁知道如何解决这个问题?如果你能提供一些示例代码,请非常感谢。
答案 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
找到更多信息