我在JTable的单元格中添加了一个JCheckBox。但是当包含JTable的帧加载时,我无法在JTable中看到JCheckBox。当我点击那个单元格时,它会显示JCheckBox的真/假值,而不是组件。
checkbox_column = table.getColumnModel()getColumn(4)。 checkbox_column.setCellEditor(new DefaultCellEditor(checkbox));
如何在JTable中拖动列时重新定位列?
答案 0 :(得分:1)
您可以设置cellEditor来处理单元格的就地编辑。单元格的一般绘制由单元格渲染器处理,单元格渲染器通过setCellRenderer()
要禁用列重新排序,您需要
table.getTableHeader().setReorderingAllowed(false);
答案 1 :(得分:1)
请记住,数据模型(更具体地说,TableModel)与视图是分开的。
您应该将单元格的值设置为布尔值,而不是将值设置为JCheckBox。然后确保你的TableModel的getColumnClass()方法为第4列返回布尔值。有不同的方法,但creating a custom TableModel和实现getColumnClass()方法是一种方法。
DefaultCellRenderer / DefaultCellEditor将显示布尔值的复选框。您也可以设置自定义渲染器/编辑器,如Devon指出的那样,但您仍然希望在该列中存储布尔值而不是JCheckBoxes。