Object[] rowData = new Object[4];
        rowData[0] = 1;
        rowData[1] = 2;
        rowData[2] = 3;
        rowData[3] =4;
       ((DefaultTableModel) jTable1.getModel()).addRow(rowData);这样写无法在jTable1上显示出添加的数据 但是数据已经添加进去了
请问是否还要加类似刷新语句之类的语句呢。。
            jTable1.updateUI();
            jTable1.revalidate();
这2个语句试过了··但是表格还是显示不出数据

解决方案 »

  1.   

    比如你从数据库查询数据 然后以表格形式返回 可以这么写//输入:connection对象,sql语句,由结果各字段名组成的name数组
    //输出 JTable的对象 
    public JTable createTableFromSQL(Connection connection,String sql , Object[] name)throws Exception{
        Statement stmt = connection.createStatement(
        ResultSet.TYPE_SCROLL_INSENSITIVE,// 对滚动不敏感,结果集可滚来滚去
        ResultSet.CONCUR_READ_ONLY);// 只能够读取里边的内容,
        ResultSet rs = stmt.executeQuery(sql);//开始执行查询语句,结果存储在rs中
        rs.last();// 指到定位到最后一行
        int row = rs.getRow();// 获得总行数
        rs.beforeFirst();// 定位到开始
        ResultSetMetaData rsmd1 = rs.getMetaData();// 计算字段个数
        int col = rsmd1.getColumnCount(); // 计算字段个数
        Object a[][] = new Object[row][col];//确定表格存储数据的大小
        JTable jTable = new JTable(a, name);//建立表格
        for (int index = 0; rs.next(); index++)//使用查询返回的结果初始化表格
    for (int j = 0; j < col; j++)
        a[index][j] = rs.getString(j + 1);
    return jTable;
        }
      

  2.   

    在model发生变化后,要通知table数据发生变化:
     ((DefaultTableModel) jTable1.getModel()).fireTableDataChanged()