我创建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");但不知道如何指定这各个列的数据类型,请问如何指定??
id Integer
name String
isvalid Boolean目前代码是这样的:DefaultTableModel md = (DefaultTableModel) this.getJTable().getModel();
md.addColumn("id");
md.addColumn("name");
md.addColumn("isvalid");但不知道如何指定这各个列的数据类型,请问如何指定??
(如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);
}
}
String[] columnNames = {"First Name","Last Name","Sport","# of Years","Vegetarian"};
Object[][] data = {
{"Mary", "Campione",
"Snowboarding", new Integer(5), new Boolean(false)},
{"Alison", "Huml",
"Rowing", new Integer(3), new Boolean(true)},
{"Kathy", "Walrath",
"Knitting", new Integer(2), new Boolean(false)},
{"Sharon", "Zakhour",
"Speed reading", new Integer(20), new Boolean(true)},
{"Philip", "Milne",
"Pool", new Integer(10), new Boolean(false)},};
DefaultTableModel defaultTableModel2 = new DefaultTableModel(data,columnNames);