如何更改或查找JTable中的列类型 [英] How to change or find column type in JTable
问题描述
我想在 JTable
中的每一行插入 JCheckBox
,因此我尝试更改第一列类型。当我尝试这个代码,我得到java.lang.String不能转换为java.lang.Boolean错误。
DefaultTableModel model = new DefaultTableModel(){
private static final long serialVersionUID = 1L;
@Override
public Class<?> getColumnClass(int column){
switch(column){
case 0:
return Boolean.class;
case 1:
return String.class;
case 2:
return String.class;
case 3:
return String.class;
默认值:
return String.class;
}
}
}
务必向 TableModel
中添加 Boolean.class
类型的值,如下所示在这里。另请参见 创建表模型 for a typical implementation。
@Override
public Class<?> getColumnClass(int c){
return getValueAt(0,c).getClass();
}
补充:我将行值更改为 true
。
有几种方法可以确保模型包含 Boolean类型的值。 class
:
-
Boolean.TRUE
或Boolean.FLASE
,在java.lang.Boolean
。 -
code> Boolean.valueOf(boolean b),其中
b
可以是一个值或表达式boolean
。
正如@kleopatra所说,简单的教程实现不能满足两个基本要求:
-
防止
null
值。 -
对模型的生命周期返回相同的值。
I want to insert JCheckBox
in every row in JTable
so I try to change my first column type. When I try this code, I get "java.lang.String cannot be cast to java.lang.Boolean" error.
DefaultTableModel model=new DefaultTableModel(){
private static final long serialVersionUID = 1L;
@Override
public Class<?> getColumnClass(int column) {
switch (column) {
case 0:
return Boolean.class;
case 1:
return String.class;
case 2:
return String.class;
case 3:
return String.class;
default:
return String.class;
}
}
}
Be certain to add values of type Boolean.class
to your TableModel
, as shown here. See also Creating a Table Model for a typical implementation.
@Override
public Class<?> getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
Addendum: I changed row value as true
.
There are several ways to ensure that the model contains a value of type Boolean.class
:
Boolean.TRUE
orBoolean.FLASE
, constants defined injava.lang.Boolean
.Boolean.valueOf(boolean b)
, whereb
may be a value or expression yieldingboolean
.
As @kleopatra notes, the simple tutorial implementation fails to meet two essential critera:
Guard against
null
values.Return the same value for the lifetime of the model.
这篇关于如何更改或查找JTable中的列类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!