2010-02-19 91 views
1

我在JTable的单元格中添加了JCheckBox。但是当包含JTable的框架加载时,我看不到JTable中的JCheckBox。当我单击该单元格时,它将显示JCheckBox的真/假值,而不是该组件。在JTable单元格中添加的JCheckBox不可见

checkbox_column = table.getColumnModel()。getColumn(4); checkbox_column.setCellEditor(new DefaultCellEditor(复选框));

另外如何禁用在JTable中拖动它的列重新定位?

+0

您在哪里被要求阅读上次发布中“如何使用表”的Swing教程。本教程再次包含如何使用复选框的工作示例。你为什么认为我建议你阅读教程。它要学习,所以你不要浪费时间提问文档中涉及的问题。不仅如此,你甚至不打算接受所有其他帖子的单一答案。我希望论坛中的其他人能够按照我的计划在未来加入你的行列。 – camickr 2010-02-19 21:33:38

回答

1

您设置了处理单元格原地编辑的cellEditor。小区的总作画是由通过setCellRenderer()

设为禁用重新排序列的单元格渲染处理,你要

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

记住,数据模型(更具体地说,为TableModel)是分开风景。

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

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