主要通过“元件名”和“生产厂家”2个内容来查询数据库并显示结果
部分代码如下:
Object a[][];
Object colname[] = {"元件名","生产厂家"};
.....
a = new Object[30][2];
table = new JTable(a,colname);
......
 if(eb.getSource() == b_enter){
  try{
      int i = 0;
      sqll = sql.connect();
      a1 = "'" + "%"+t_name.getText().trim()+"%" + "'";//t_name为“元件名”文本框
      a2 = "'" + "%"+t_company.getText().trim()+"%" + "'";//t_company为“生产厂家”文本框
      String temp = "select * from FF where 元件名 like "+a1+"and 元件厂家 like "+a2;
      rs = sqll.executeQuery(temp);
      for(int n=0; n<2; n++){   
      a[i][n] = rs.getString(n+2);   
  }
   i++;
   p_bar.setValue(i);p_bar.setString("查询了"+i+"条记录");
......
整个代码测试并读取数据库内容都没问题。。
假设我的table为:
table FF:元件名  生产厂家
            aa        bb
            aa        bb
            aa        bb
            cc        dd  
            ee        ff
           ....       ....         
                  
现在问题主要出在数组a 的显示问题上了,主要有2个大问题:
1.当输入的a1=aa,a2=bb时,提示我查询到3条记录,但是a[30][2]这个表格并不显示出数据,只有用鼠标点击该表格内容框时才显示出来(用鼠标点a[0][0]表格位置时,就显示出 aa  bb,要是接着点a[3][0]则显示完3条记录),不知道是不是table需要刷新?若需要的话怎么刷新?
2.在1的基础上,若再次输入a1=cc,a2=dd时(1的问题依然存在,就是表内无法立即刷新出查询到的记录),提示找到1条记录。但最终结果为:
    cc  dd
    aa  bb
    aa  bb
就是第一条记录更新了,但之前查询时遗留下来的2-3条记录依然存在,不知道该如何在每次按下 b_enter键时都更新一遍数组a。我希望第二次查询的结果为:
    cc   dd
把之前的查询到的记录删除掉。
这2个问题我从早上弄到现在,,,一直找不到解决的办法。。特来不耻下问。。希望大家帮忙下、

解决方案 »

  1.   

     使用List<List<Object>>比二维数组方便一些。
      

  2.   

    JTable的刷新很好做,无非就是增加删除行。
    第二个问题的原因应该是数组或者JTable的model没出去原来的记录而直接加薪记录了。
    btw,最后用的那个“不耻下问”,太油菜了。
      

  3.   

    那个成语没别的意思阿,,刚刚看了下成语意思,,发现和我想表达的意思颠倒了0.0
    别人都说有问题先问百度,解决不了再来BBS请高手,我现在就是第二种境界了。
    言归正传
    第一个问题解决了就是最后调用个table.updateUI(); 
    看来自己没学好的缘故- -!
    现在还在努力思索怎么解决第二个烦恼,,大家赐教下#14