gpt4 book ai didi

java - 无法在 JTable 中使用 DefaultTableModel

转载 作者:行者123 更新时间:2023-12-01 11:27:51 24 4
gpt4 key购买 nike

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

由于我是JFrameJTable等的新手,我无法确定我做错了什么。为什么会出现 ClassCastException 以及如何修复它?

最佳答案

DefaultTableModel.addRow(Object[]) 只能添加一行。但您想要做的是添加多行。

迭代行并分别添加每行。

model.addRow(rowData); 替换为:

for (Object[] row : rowData) {
model.addRow(row);
}

关于java - 无法在 JTable 中使用 DefaultTableModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30670919/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com