在 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?