Всякий раз, когда в JTable есть потерянный фокус, мне нужно захватить строку и столбец существующей ячейки.
Однако приведенное ниже условие всегда ложно, поскольку источником всегда является либо 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, то информация о строках и столбцах будет не синхронизирована.
Есть ли способ получить Row и Col во время FocusLost? если нет, есть ли лучший способ сделать это?