日期:2014-05-20  浏览次数:20877 次

一个jatable的用法问题
我用jtable绑定对象body, 我现在更新了body里面的内容,该如何让table的显示内容能够自动更新呢

这种是可以的,更新了body的内容,table也更新,关键是body开始就是固定的
public class addicp_gui extends JFrame implements ActionListener 
{

  Object body[][]=new Object[50][2];
  String title[]={"TR Number","TR Description"};
  table=new JTable(body,title);
  this.add(table);
  .....
  this.setvisible(true);
  ....
  setvisible

}

我现在问题是如下的情况,body的围数不是固定的,是根据数据库的记录数目然后new 出body,这种情况,当我更新数据库后,调用select的显示表内容的时候,表没有变化
public void select() {
   
  ResultSet rs;  

  dbinterface db = new dbinterface();
  String sql = "select count(*) from tab_icp";
   
  rs = db.executequery(sql);
  rs.next();
  body =new Object[rs.getInt(1)][6]; //获得记录的数目,生成新的object
  System.out.println ("in Select "+ rs.getInt(1));
   
  table=new JTable(body,title);  

  ....  
   
  this.setVisible(true);

  for(int x=0;x<body.length;x++){
  body[x][0]=null;
  .......
  body[x][5]=null;
  }
  rs = icpinfo.icplist_get();
   
  int i =0;
  while(rs.next()){
  body[i][0]=rs.getInt(1);
  body[i][1]=rs.getString(2);
  body[i][2]=rs.getString(3); //数据更新
  ......
   
  i=i+1;
  }
  }

  table.repaint();
  jsp.repaint(); //这是一个panel
  this.repaint();


------解决方案--------------------
顶一下,着急啊