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