2017-02-22 44 views
0

Проблема возникает только при наличии двух 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?

+0

Для лучшей помощи, пожалуйста, отправьте действительный [mcve], который демонстрирует вашу проблему, это приведет к меньшему путанице и лучшим ответам. – Frakcool

ответ

0

При нажатии стрелки вниз при редактировании ячейки stopEditing() запускается в таблице A (хорошо), TableB уведомляется об изменении в таблицеA и обновляет собственные данные.

Используйте TableModelListener для прослушивания изменений данных в таблице.

Отъезд: JTable -> TableModeListener для простого примера, чтобы вы начали. Пример обновляет данные в одной таблице, поэтому вам, очевидно, необходимо будет изменить его, чтобы обновить TableModel другой таблицы.

+0

В настоящее время я использую TableModelListener для изменения другой таблицы. – user1144251

+0

@ user1144251, вам было предложено несколько часов назад опубликовать ваш «MCVE», который демонстрирует проблему. У вас нет, поэтому мы не можем догадываться, что вы можете или не можете делать. – camickr

 Смежные вопросы

  • Нет связанных вопросов^_^