部分代码
public class ShowUserMessageDialog extends JDialog {
    JPanel panel1 = new JPanel();
    Object[][] cells=new Object[10][10];
    int i=0,j;
    public ShowUserMessageDialog(int z){
        try{
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        }catch(ClassNotFoundException ce){
            System.out.println(ce);
        }
        try{
            Connection con=DriverManager.getConnection("jdbc:odbc:assetManage");
            Statement s=con.createStatement();
            ResultSet rs=s.executeQuery("select userId,headShip,userType from userId");
            while(rs.next()){
                j=0;
                cells[i][j]=rs.getString(1);
                j++;
                cells[i][j]=rs.getString(2);
                j++;
                cells[i][j]=rs.getString(3);
                i++;
            }
            rs.close();
            s.close();
            con.close();
        }catch(SQLException se){
            System.out.println(se);
        }
    }
    String[] colnames={"用户名","公司职务","权限"};
    JTable jTableUserMessage = new JTable(cells,colnames);
    JTableHeader jTableHeader1 = jTableUserMessage.getTableHeader();

解决方案 »

  1.   

    在其他类调用了构造方法后try内已经得到数据库中的值。。但一到了表格输出(好像是离开try块后)就没有了
      

  2.   

    我测试了,这样写while (rs.next()) {
                    j = 0;
                    cells[i][j] = rs.getString(1);
                    System.out.println("cells["+i+"]["+j+"] = " + cells[i][j]);
                    j++;
                    cells[i][j] = rs.getString(2);
                    System.out.println("cells["+i+"]["+j+"] = " + cells[i][j]);
                    j++;
                    cells[i][j] = rs.getString(3);
                    System.out.println("cells["+i+"]["+j+"] = " + cells[i][j]);
                    i++;
                    if (i+j > cells.length) {
                        break ;
                    }
                }
    二伟数组有数据,而且不会抛Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
    这个异常。