在这个函数actionPerformed()体中,加入刷新table的语句,如
tb.invalidate();
tb.repaint();
试试看

解决方案 »

  1.   

    你的代码是不是只能显示10条记录????
    你定义了10行7列,如果数据库中的记录超过10条,你的JTable能把库中的记录全部显示出来吗??
      

  2.   

    用可以用刷新的方法试试能不能解决第一个问题,tb.updateUI();(这个方法放在把数据放在table之后)第二个问题你可以 每次都把这个数组清空啊 ~  查一次清空一次   每次只放新的数据就行了    另外 建议用vector的方式去存放数据,操作起来更方便 ~
      

  3.   

    呵呵,其实很简单,你这是数据更新后你自己没有通知JTable表格已经更新数据的结果,你更新数据后必须通知JTable数据已经改变,你用((DefaultTableModel)tb.getModel()).fireTableDataChanged();这个加在按钮执行完毕之后试试?如果报错那么你需要自己定义一个TableModel,然后在数据改变的地方调用fireTableDataChanged();这个函数.
      

  4.   

    附加一句,fireTableDataChanged();这个方法是AbstractTableModel类的,一般情况下如果要用到JTable的话你自己必须重新定义你的TableModel,要不然JTable非常不好用,再提个建议,你的JTable存放数据最好不要用数据,用JList或是Vector,这个存放数据的是在哪里定义的呢?是在你定义的TableModel类里面定义,你的TableModel如果不太会写你可以继承DefaultTableModel类.然后复写里面的一些重要方法.
      

  5.   

    LZ建议你用new jtable(Vector,Vector);
    我用vector 写的查找
    findBtn.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    rowData=new Vector();
    String findvalue=searchField.getText().trim();
    rowData = columnDAO.findRowData(str,findvalue);
    ((DefaultTableModel) jtable.getModel()).setDataVector(rowData,
    column);
    }
    });
    这个查找的方法:
    public Vector findRowData(String column,String likeID) {
    // TODO Auto-generated method stub
    String sql = "";
    Vector rowdata = new Vector();
    if (column.endsWith(","))
    sql = "select " + column.substring(0, column.length() - 1)
    + " from custom where id like '%"+likeID+"%' order by id";
    else
    sql = "select " + column + " from custom";
    String[] columns = column.split(",");
    Connection con = db.getConnection();
    PreparedStatement ps = null;

    ResultSet rs = null;
    try {
    ps = con.prepareStatement(sql);
    rs = ps.executeQuery();
    while (rs.next()) {
    Vector vector = new Vector();
    if (column.contains("id")) {
    vector.add(rs.getString("id"));
    }
    if (column.contains("name"))
    vector.add(rs.getString("name"));
    if (column.contains("age"))
    vector.add(rs.getInt("age"));
    if (column.contains("email"))
    vector.add(rs.getString("email"));
    if (column.contains("address"))
    vector.add(rs.getString("address"));
    if (column.contains("speciality"))
    vector.add(rs.getString("speciality"));
    if (column.contains("street"))
    vector.add(rs.getString("street"));
    rowdata.add(vector);
    }
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } finally {
    db.release(rs);
    db.release(ps);
    db.release(con);
    }
    return rowdata;
    }
    你可以参照下