我无法将jChceckBox放到jTable单元格中。我更可能将checkBox放到表中,但是当我使用该表运行模块时,应该是checkBox的单元格显示文本“true”或“false”。该单元格的行为与复选框相同,但它显示文本值而不是复选框。
这是代码。
DefaultTableModel dm = new DefaultTableModel();
dm.setDataVector(new Object[][]{{"dd", "Edit", "Delete"},
{"dd","Edit", "Delete"}},
new Object[]{"Include","Component", "Ekvi"});
jTable1 = new javax.swing.JTable();
jTable1.setModel(dm);
JCheckBox chBox=new JCheckBox();
jTable1.getColumn("Include").setCellEditor(new DefaultCellEditor(chBox));
jScrollPane1.setViewportView(jTable1);
答案 0 :(得分:5)
阅读JTable API并按照“如何使用表格”的Swing教程链接获取工作示例。
基本上你在TableModel中存储布尔值,然后重写getColumnClass()方法以返回每个colulmn的类,表将选择适当的渲染器和编辑器。
答案 1 :(得分:1)
单元格编辑器根据编辑其值来定义表中数据的行为,您需要的是正确TableCellRenderer
正确显示单元格内的复选框:
final JCheckBox checkBox = new JCheckBox();
jTable1.getColumn("Include").setCellRenderer(new DefaultTableCellRenderer() {
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
check.setSelected(((Boolean)value).booleanValue()) ;
return check;
}
});