【发布时间】:2015-06-05 16:00:14
【问题描述】:
Object rowData[][] = {
{1, "", null, "", "", false, ""},
{2, "", null, "", "", false, ""},
{3, "", null, "", "", false, ""},
{4, "", null, "", "", false, ""},
{5, "", null, "", "", false, ""},
{6, "", null, "", "", false, ""}
};
DefaultTableModel model = new DefaultTableModel() {
@Override
public Class<?> getColumnClass(int columnIndex) {
switch (columnIndex) {
case 0:
return Integer.class;
case 1:
return String.class;
case 2:
return Integer.class;
case 3:
return String.class;
case 4:
return String.class;
case 5:
return Boolean.class;
case 6:
return String.class;
default:
return super.getColumnClass(columnIndex);
}
}
};
model.addColumn("Sr No.");
model.addColumn("Name");
model.addColumn("Age");
model.addColumn("Gender");
model.addColumn("City");
model.addColumn("isChild");
model.addColumn("Address");
model.addRow(rowData);
JTable table = new JTable(model);
table.setRowHeight(20);
table.setRowMargin(2);
table.getColumnModel().getColumn(0).setMaxWidth(50);
TableColumn childColumn = table.getColumnModel().getColumn(5);
JCheckBox childBox = new JCheckBox();
childColumn.setCellEditor(new DefaultCellEditor(childBox));
我已经编写了上面的代码来向用户显示一个表格,倒数第二列需要是一个复选框。因此,我从许多来源中挑选了一小部分后,谷歌搜索并找到了以下代码,但我遇到了以下异常:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException:
[Ljava.lang.Object; cannot be cast to java.lang.Boolean
当我将switch case 中的Boolean.class 更改为String.class 时,它没有显示任何异常,但我在行中获得了java.lang.String 等值
因为我是JFrame、JTable 等的新手。我无法确定我做错了什么。为什么是ClassCastException 以及如何解决它?
【问题讨论】:
标签: java swing jtable classcastexception defaulttablemodel