如何把jtable某列设置为boolean?

dash_running 2009-07-27 10:54:27
我创建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");

但不知道如何指定这各个列的数据类型,请问如何指定??
...全文
249 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ip99_w_cc 2009-08-05
  • 打赏
  • 举报
回复
movingchina 2009-08-04
  • 打赏
  • 举报
回复
嗯。正好我要用到。我是和sun的做法一样。
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);
dash_running 2009-07-28
  • 打赏
  • 举报
回复
有人会吗
dash_running 2009-07-28
  • 打赏
  • 举报
回复
解决了。

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);
}
}
dash_running 2009-07-27
  • 打赏
  • 举报
回复
没人会吗?自己顶一下

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧