Редактор ячеек не выходит при удалении строки - PullRequest
1 голос
/ 29 сентября 2011

У меня есть JTable с несколькими столбцами, в одном из которых есть пользовательский рендер, отображающий 3 кнопки в JPanel, а также пользовательский редактор, позволяющий нажимать на них.Одна из кнопок отправляет команду удаления на наш сервер для этого идентификатора строки, а затем перезагружает данные таблицы с сервера путем очистки модели данных и повторной загрузки данных.Когда это происходит, ячейка с 3 кнопками продолжает отображаться (но не остальная часть строки), пока я не нажму другую кнопку в другой строке, даже если строка пропала.

Я установил putClientProperty("terminateEditOnFocusLost", Boolean.TRUE), носмена фокуса на другой компонент не помогает.

Я попытался удалить саму строку перед обновлением данных (даже удалил все строки) и убедился, что вызвал fireTableRowsDeleted().

IМы также пытались вызвать функции cancelCellEditing() и stopCellEditing() TableCellEditor и даже вручную установить строку / столбец редактирования для другой ячейки.

Любая помощь будет принята с благодарностью.


Хорошо, так что я понял это.В итоге я позвонил removeEditor() на стол, и это все исправило.

Спасибо за ответы.

Ответы [ 2 ]

1 голос
/ 29 сентября 2011

Я установил putClientProperty ("terminateEditOnFocusLost", Boolean.TRUE), но изменение фокуса на другой компонент не помогает.

Этот метод должен вызываться при создании таблицы,отсутствует в методе actionPerformed при нажатии кнопки.

0 голосов
/ 30 сентября 2011

Хорошо, так что я понял это.Я закончил тем, что вызвал removeEditor () для таблицы непосредственно перед обновлением данных, и это исправило это.

Спасибо за ответы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...