在 netbeans 中使用 JTables

Posted

技术标签:

【中文标题】在 netbeans 中使用 JTables【英文标题】:Using JTables in netbeans 【发布时间】:2014-03-04 07:11:19 【问题描述】:

我想将结果集中的数据显示到JTable。 当我运行以下代码时,表格不会更新。

 public void getHouses(int price) 
    Connection conn;


    ArrayList<Integer> ID = new ArrayList<Integer>();
    ArrayList<String> Price = new ArrayList<String>();



    try 
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        conn = DriverManager.getConnection("jdbc:odbc:Houses");
        Statement statement = conn.createStatement();
        ResultSet rec = statement.executeQuery("SELECT * FROM Houses WHERE Price <= " + price + "");

        while (rec.next()) 
            ID.add(rec.getInt("ID"));
            Price.add(rec.getString("Price"));
        


        String[] columnNames = "House ID", "House Price";
        Object[][] rows = new Object[ID.size()][2];

        for (int i = 0; i < ID.size(); i++) 
            rows[i][0] = ID.get(i);
            rows[i][1] = Price.get(i);
        

        jTable1 = new JTable(rows, columnNames);

        statement.close();
     catch (SQLException se) 
     catch (ClassNotFoundException cnf) 

注意! 我通过拖放将JTable 添加到gui。 我还测试了我的结果集中是否包含数据。

【问题讨论】:

您创建了一个新的JTable,但您没有将其添加到任何内容中 @MadProgrammer JTable 已经添加了,我只是创建了一个新实例? 检查this answer... 没错,所以你现在有一个在屏幕上,另一个不在... @MadProgrammer 好的,所以我添加了 JTable 但仍然没有 【参考方案1】:

您需要了解 OP Swing MVC 模式,您需要声明一个 TableModel,您的数据存储然后将其设置到您的表中,例如:

TableModel myData = new DefaultTableModel(columnVector, dataVector);
jTable1.setModel(myData);

阅读更多关于DefaultTableModel

【讨论】:

其实我觉得说OP一般需要学习MVC会更正确,+1 @MadProgrammer 没错,TableModel 只是将MVC 模式概念应用到JTable 不幸的是,我的导师告诉我不允许使用向量。 @Kobus,有很多构造函数为您的数据采用其他类型的参数。你可以使用DefaultTableModel(Object[][] data, Object[] columnNames)。您可以在上面的链接中了解更多信息。

以上是关于在 netbeans 中使用 JTables的主要内容,如果未能解决你的问题,请参考以下文章

如何在 NetBeans 8.2 中使用 Spring 5.0?

如何在 Netbeans 中使用 DocumentListener 和 jTextField?

在 netbeans 中使用 ant ivy

在 netbeans 中使用 JTables

如何使用 ms vc++ 编译器在 netbeans 中构建 dll 文件?

netbeans中的快捷键都有哪些?netbeans中常用快捷键大全