添加在JTable单元格中的JCheckBox不可见

时间:2010-02-19 18:52:54

标签: java swing

我在JTable的单元格中添加了一个JCheckBox。但是当包含JTable的帧加载时,我无法在JTable中看到JCheckBox。当我点击那个单元格时,它会显示JCheckBox的真/假值,而不是组件。

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

如何在JTable中拖动列时重新定位列?

2 个答案:

答案 0 :(得分:1)

您可以设置cellEditor来处理单元格的就地编辑。单元格的一般绘制由单元格渲染器处理,单元格渲染器通过setCellRenderer()

设置

要禁用列重新排序,您需要

table.getTableHeader().setReorderingAllowed(false);

答案 1 :(得分:1)

请记住,数据模型(更具体地说,TableModel)与视图是分开的。

您应该将单元格的值设置为布尔值,而不是将值设置为JCheckBox。然后确保你的TableModel的getColumnClass()方法为第4列返回布尔值。有不同的方法,但creating a custom TableModel和实现getColumnClass()方法是一种方法。

DefaultCellRenderer / DefaultCellEditor将显示布尔值的复选框。您也可以设置自定义渲染器/编辑器,如Devon指出的那样,但您仍然希望在该列中存储布尔值而不是JCheckBoxes。