2010-02-19 4 views
1

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

checkbox_column = table.getColumnModel(). GetColumn (4); checkbox_column.setCellEditor (новый DefaultCellEditor (флажок));

Также как отключить позиционирование столбца при его перетаскивании в JTable?

+0

Вы, где просили прочитать учебник Swing на тему «Как использовать таблицу» в вашем последнем сообщении. Вновь учебник содержит рабочий пример использования флажков. Почему, по-вашему, я предложил вам прочитать учебник. Его изучить, чтобы вы не тратили время на задание вопросов, на которые распространяется документация. Мало того, что вы даже не потрудились принять единый ответ, все ваши другие публикации. Надеюсь, что другие участники форума будут впредь участвовать в будущем, когда я планирую сделать это. – camickr

ответ

1

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

Чтобы отключить колонки переназначения, вы хотите

table.getTableHeader().setReorderingAllowed(false); 
1

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

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

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

Смежные вопросы