Можно ли включить JButton в JTable?
Вопрос
У меня есть JTable, в котором хранятся результаты запроса к базе данных, пока все хорошо.Я хочу, чтобы последний столбец в каждой таблице имел интерактивную кнопку JButton, которая открывала экран редактирования для объекта, представленного в этой строке, а это означает, что кнопке нужно будет знать детали первого столбца таблицы из ее собственная строка (идентификатор из базы данных).
Любой совет?Я уже пробовал просто добавлять JButtons, но они превратились в текст, когда я попытался его запустить.
Решение
В отличие от приведенного выше руководства, есть способ сделать это без сложной математики позиционирования, пользовательских прослушивателей мыши и пользовательских моделей таблиц.Вместо этого это можно сделать с помощью одного простого пользовательского класса, следуя шаблону, описанному здесь:
Другие советы
Вам также может оказаться полезным мое руководство по аналогичной теме (в данном случае с использованием JPanel): Пользовательская ячейка JPanel с JButtons в JTable
Взгляните на введение Sun в JTable
компонент, в частности раздел о Редакторы и рендереры.В нем обсуждается использование альтернативных CellRenderers
, и CellEditors
.Что вам нужно сделать, это создать (или одолжить) ButtonCellRenderer
и ButtonCellEditor
а затем примените их к соответствующему столбцу в вашем JTable
.Примеры, найденные в связанных статьях, должны предоставить вам всю необходимую информацию.