У меня есть JTable с несколькими столбцами, в одном из которых есть пользовательский рендер, отображающий 3 кнопки в JPanel, а также пользовательский редактор, позволяющий нажимать на них.Одна из кнопок отправляет команду удаления на наш сервер для этого идентификатора строки, а затем перезагружает данные таблицы с сервера путем очистки модели данных и повторной загрузки данных.Когда это происходит, ячейка с 3 кнопками продолжает отображаться (но не остальная часть строки), пока я не нажму другую кнопку в другой строке, даже если строка пропала.
Я установил putClientProperty("terminateEditOnFocusLost", Boolean.TRUE)
, носмена фокуса на другой компонент не помогает.
Я попытался удалить саму строку перед обновлением данных (даже удалил все строки) и убедился, что вызвал fireTableRowsDeleted()
.
IМы также пытались вызвать функции cancelCellEditing()
и stopCellEditing()
TableCellEditor
и даже вручную установить строку / столбец редактирования для другой ячейки.
Любая помощь будет принята с благодарностью.
Хорошо, так что я понял это.В итоге я позвонил removeEditor()
на стол, и это все исправило.
Спасибо за ответы.