Проблема возникает только при наличии двух JTables
. TableB
прослушает TableA
и изменяет его содержимое на основе изменений, внесенных в TableA
.JTable редактирование при выборе не работает при нажатии клавиши при редактировании ячейки
Без TableB
, TableA
ведет себя хорошо. При нажатии стрелки вниз при редактировании ячейки фокус переходит в ячейку ниже и содержимое ячейки становится подсвеченным, и пользователь может изменить все содержимое ячейки.
TableB
С в картине, при нажатии на стрелку вниз при редактировании ячейки stopEditing()
срабатывает в TableA
(хорошо), TableB
уведомляется об изменении TableA
и обновляет свои собственные данные. На этом этапе фокус теряется в TableA
(плохой). TableA
должны в этот момент сосредоточиться на ячейке ниже на этапе редактирования.
Я попытался получения фокуса обратно TableA
через:
TableA.requestFocusInWindow();
TableA.setSelectedCell(TableA.getSelectedRow(), getEditableColumn());
Проблема заключается ячейка выбрана, но это должно быть в стадии редактирования не просто быть выбранным.
тогда я попробовал:
TableA.editCellAt(TableA.getSelectedRow(), getEditableColumn());
Но выше линии, похоже, не делать ничего.
Что делать, чтобы предотвратить изменение размера/перекраски TableB
от воздействия фокуса и поведения или TableA
?
Для лучшей помощи, пожалуйста, отправьте действительный [mcve], который демонстрирует вашу проблему, это приведет к меньшему путанице и лучшим ответам. – Frakcool