我创建jtable是先添加column,再往里面添值,不是像sun 的 jtable的tutorial 里那样,把column和每个column的值都初始化好后一次添加到jtable里,所以不知道在往jtable里添加列的时候,如何指定这列是boolean. 我想实现的是jtable里 添加如下列 
id      Integer 
name    String 
isvalid  Boolean 目前代码是这样的: DefaultTableModel md = (DefaultTableModel) this.getJTable().getModel(); 
md.addColumn("id"); 
md.addColumn("name"); 
md.addColumn("isvalid"); 但不知道如何指定这各个列的数据类型,请问如何指定??

解决方案 »

  1.   

    我觉得jtable里只是用来显示一些信息的,把要显示的类型都转换成String类型的再在Jtable里显示就是了。我平时就是这么做的。
      

  2.   

    直接放进去 显示的时候是调用对象的toString()方法的应该
      

  3.   

    各位好像没明白我的意思,不过我自己已经解决了。DefaultTableModel 把每列都当 String来处理,显示数据的时候由于会自动调用toString方法,所以不会出错,但是,要是从jtable里读数据,就得一个个做数据类型转换,把String转成Integer,Double,等等,
    (如believeyourself86所用的方法),但很不方便啊,
    但其实完全可以直接取出来就是Integer,Boolean,甚至是自己定义的bean 等类型,要实现这个功能,就得自己写个 TableModel, 重写父类的 getColumnClass 方法,返回自己想要的数据类型的 class就可以了。
    我写的如下:public class MyTableModel extends DefaultTableModel {    private List<Class> colTypes = new ArrayList<Class>();
        public Class getColumnClass(int c) {
            return colTypes.get(c);
        }
        public void addColumn(Object columnName, Class columnType){
         this.addColumn(columnName);
         this.colTypes.add(columnType);
        }
    }