Задача:
Добавить в JTable колонку с иконкой, запретить получение фокуса
ячейками этой колонки, т.е. запретить выделение этой колонки,
запретить Tab-переходы к ней, переход осуществлять к следующей ячейке.
Ячейки этой колонки должны выглядеть для пользователя как картинка на форме.
Что делал:
Искал в Web, в т.ч. и на RSDN. К сожалению, лучшее полученное решение —
переписать обработку нажатия клавиш и осуществлять передачу фокуса вручную.
Аналогично, видимо, придется сделать и с выделением мышью. Если нет метода лучше,
так и сделаю, однако хотелось бы найти более стандартный и красивый способ.
Для показывания колонки сделал Renderer, метод getTableCellRendererComponent
которого возвращает JButton с иконкой. Пробовал выключать кнопку с помощью
setEnabled(false), ставить ей setFocusable(false).
Навесил на кнопку FocusListener, включил ее, разрешил получение фокуса.
Оказалось, кнопка фокуса не получает при Tab-переходе на нее и при выборе мышью.
Внимание, вопрос знатокам, кто же получает фокус?
Сделал DummyEditor, который везде возвращает null и false, в т.ч.
getTableCellEditorComponent и isCellEditable. В TableModel для этой колонки
тоже возвращаю isCellEditable false.