gpt4 book ai didi

java - 如何在 FocusLost 事件期间获取 JTable 选定的行和选定的列

转载 作者:行者123 更新时间:2023-12-02 07:34:06 24 4
gpt4 key购买 nike

只要 JTable 中存在丢失焦点,我就需要捕获现有单元格的行和列。

但是,下面的条件始终为 false,因为源始终是 JTextField 或 JComboBox。

public void focusLost(FocusEvent e) {
int row, col;

Object source = e.getSource();
if(((Component) source).getParent() instanceof JTable_Ext){ //<-- always false
table = (JTable_Ext) ((Component) source).getParent();
row = table.getSelectedRow();
col = table.getSelectedColumn();
}

为了缓解上述问题,我记住了 FocusGained 期间的行和列(作为类级别变量)。问题是,如果用户在 JTable 中的各处单击速度非常快,行和列信息就会不同步。

有没有办法在 FocusLost 期间获取 Row 和 Col?如果没有,有更好的方法吗?

最佳答案

嗯,有一个oppositeComponent。奇怪的是,如果此监听器附加到表,文档会告诉表应该是“源”组件(因为它是 FocusLost 事件,而失去焦点的组件是表本身)。

http://download.oracle.com/javase/1.4.2/docs/api/java/awt/event/FocusEvent.html#getOppositeComponent%28%29

关于java - 如何在 FocusLost 事件期间获取 JTable 选定的行和选定的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6293142/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com