JTable 不显示超过 5 列

JTable not showing more than 5 columns

我需要通过 JTABLE 显示来自 tables 的数据,我 googled 数小时,终于成功找到了执行此操作的代码,并且工作正常但存在一个问题我认为来自 netbeans

这是我的 table

它有 6 列,

这是我的jtable

这是结果

现在在这里发帖之前,我尽力 google 或阅读关于 jtables 的 oracle 文档,找不到关于这个奇怪问题的任何信息, 如果我使用 4 列,它显示 4 列数据,我从设计中增加了 1 列,它开始显示 5 列数据(完美)当我最后再添加 1 列时,它仍然显示 5 列数据

这是代码

   try {
        MyConnection mc = new MyConnection();
        Class.forName(mc.driver);
        Connection connect = DriverManager.getConnection(mc.login);
        Statement smt = connect.createStatement();
        ResultSet rs = smt.executeQuery("select * from library_member");
        ResultSetMetaData rsmeta = rs.getMetaData();
        int columns = rsmeta.getColumnCount();
        DefaultTableModel dtm = new DefaultTableModel();
        Vector columns_name = new Vector(), data_rows = new Vector();

        for(int i = 1; i < columns; i++){
            columns_name.addElement(rsmeta.getColumnName(i));
        }

        dtm.setColumnIdentifiers(columns_name);

        while(rs.next()){
            data_rows = new Vector();
            for(int j = 1; j < columns; j++){
                data_rows.addElement(rs.getString(j));
            }
            dtm.addRow(data_rows);
        }

        jTable1.setModel(dtm);

    } catch (Exception ex) {
        ex.printStackTrace();
    }

P.S 它没有显示的列我认为是因为 member_email 得到了 1 个空值,如果它是真的,应该如何允许它,

问题!! :如何将 rowCount 从 4 增加?它的 uneditable 在 netbeans designview 中,我没有足够的时间自己创建一个 jtable


我在 member_id=2 更新了 member_email,仍然没有显示 :(

你数错了。将for循环中的i = 1改为i = 0。

    for(int i = 0; i < columns; i++){
        columns_name.addElement(rsmeta.getColumnName(i+1));
    }

还有这里:

        for(int j = 0; j < columns; j++){
            data_rows.addElement(rs.getString(j+1));

        }

另请注意 MadProgrammer 的评论,即 JDBC 行索引从 1 开始,而不是 0。这就是为什么您还需要 getColumnName(i+1) 和 getString(j+1)。

或者您可以在循环中从 1 开始计数并测试 <= 列,例如:

    for(int i = 1; i <= columns; i++){
        columns_name.addElement(rsmeta.getColumnName(i));
    }