我想在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; default: return String.class; } } }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; } } }最满意答案
确保将Boolean.class类型的值添加到TableModel ,如此处所示。 另请参阅为典型实现创建表模型 。
@Override public Class<?> getColumnClass(int c) { return getValueAt(0, c).getClass(); }附录: 我将行值更改为 true 。
有几种方法可以确保模型包含Boolean.class类型的值:
Boolean.TRUE或Boolean.FLASE , java.lang.Boolean定义的常量。
Boolean.valueOf(boolean b) ,其中b可以是一个产生boolean值的值或表达式。
true或false ,自Java 1.5以来自动装箱的 文字 。
正如@kleopatra所说,简单的教程实现无法满足两个基本标准:
防范null值。
返回模型生命周期的相同值。
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 or Boolean.FLASE, constants defined in java.lang.Boolean.
Boolean.valueOf(boolean b), where b may be a value or expression yielding boolean.
true or false, literals that are autoboxed since Java 1.5.
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.
更多推荐
发布评论