我想将结果集中的数据显示为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中。
我还测试了我的结果集中有数据。
答案 0 :(得分:2)
您需要了解OP Swing MVC
模式,您需要声明数据存储然后将其设置为您的表的TableModel
,例如:
TableModel myData = new DefaultTableModel(columnVector, dataVector);
jTable1.setModel(myData);