JCheckBox, добавленный в ячейку JTable, не виден - PullRequest
1 голос
/ 19 февраля 2010

Я добавил JCheckBox в ячейку JTable.Но когда загружается фрейм, содержащий JTable, я не вижу JCheckBox в JTable.Вместо компонента он показывает значения true / false для JCheckBox, когда я щелкаю эту ячейку.

checkbox_column = table.getColumnModel (). GetColumn (4);checkbox_column.setCellEditor (new DefaultCellEditor (checkbox));

Кроме того, как отключить перемещение столбца при его перетаскивании в JTable?

Ответы [ 2 ]

1 голос
/ 19 февраля 2010

Помните, модель данных (точнее, TableModel) отделена от представления.

Вы должны установить значение ячейки в логическое значение вместо того, чтобы устанавливать значение в JCheckBox. Затем убедитесь, что метод getColumnClass () вашего TableModel возвращает логическое значение для столбца 4. Это можно сделать разными способами, но создание собственного TableModel и реализация метода getColumnClass () - это один из способов.

DefaultCellRenderer / DefaultCellEditor покажет флажок для логических значений. Вы также можете установить пользовательские средства визуализации / редакторы, как указала Девон, но вы все равно захотите хранить логические значения вместо JCheckBoxes в этом столбце.

1 голос
/ 19 февраля 2010

Вы устанавливаете cellEditor, который обрабатывает редактирование ячейки на месте. Общая окраска ячейки обрабатывается средством визуализации ячейки, которое задается с помощью setCellRenderer()

Чтобы отключить переупорядочение столбцов, вы хотите

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