Как сделать компонент в JTable с помощью TableModel? - PullRequest
0 голосов
/ 06 ноября 2018

Я успешно отобразил JTable, используя AbstractTableModel, но я хочу добавить кнопку удаления для каждой строки в последнем столбце, в методе getValueAt, который возвращает Object, я никак не могу вернуть JButton, JLabel или любой JComponent, который можно кликнуть. Я попробовал это, и я получаю только описание объекта toString.

Есть ли другое решение для визуализации JComponent в JTable без использования подхода TableModel?

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Есть ли другое решение для визуализации JComponent в JTable без использования подхода TableModel?

TableModel используется для хранения данных для данных модели.

JTable реализует представление данных для каждого столбца. Рендерер это просто изображение данных. Вы можете легко визуализировать данные в виде кнопки, однако средство визуализации не отвечает ни на одно событие.

JTable поддерживает редакторы, и именно так вы взаимодействуете с реальными компонентами. Когда вы редактируете обычную ячейку, JTextField помещается в ячейку, так что вы можете ввести данные в ячейку, а затем данные будут сохранены в модели.

Так что, если вы хотите нажать на кнопку, вам нужно использовать кнопку в качестве редактора.

Проверьте Кнопка столбца таблицы для класса, который использует JButton в качестве средства визуализации и редактирования. Затем вы предоставляете классу Action, который будет вызываться при нажатии кнопки.

Прочтите раздел из учебника по Swing по Основные понятия: средства визуализации и редактор для получения дополнительной информации. Также есть раздел на Using Other Editors.

0 голосов
/ 06 ноября 2018

В одну сторону: TableColumn.setCellEditor (jbutton_instance) для добавленного вручную столбца.

...