我正在尝试使用我的 Derby 数据库数据填充 Netbeans GUI 构建器 jTable。
我在我的 Account.java 类中使用以下代码:
public DefaultTableModel getData() {
try {
String stmt = "SELECT * FROM APP.DATAVAULT";
PreparedStatement ps = Main.getPreparedStatement(stmt);
ResultSet rs = ps.executeQuery();
ResultSetMetaData md = rs.getMetaData();
int columnCount = md.getColumnCount();
Vector columns = new Vector(columnCount);
//store column names
for (int i = 1; i <= columnCount; i++) {
columns.add(md.getColumnName(i));
}
Vector data = new Vector();
Vector row;
while (rs.next()) {
row = new Vector(columnCount);
for (int i = 1; i <= columnCount; i++) {
row.add(rs.getString(i));
}
data.add(row);
//Debugging
}
// List.setModel(tableModel);
ps.close();
rs.close();
} catch (SQLException e) {
System.out.println(e.getMessage());
}
DefaultTableModel tableModel = new DefaultTableModel(data, columns);
return tableModel;
}
理想情况下,我希望能够返回包含参数数据和列的 tableModel,因为我知道在 GUI 中执行此方法是不好的做法。所有在线教程都不展示如何将数据发送到另一个类,它们只是在 GUI 类中执行数据库代码。
我遇到一个错误,它无法看到数据和列,因为它们是在我的方法的无法访问的部分中声明和使用的。完成此操作后,我需要找到一种方法将其传递到我的 GUI 类,并为 Netbeans GUI 构建器创建的 jTable 设置模型。
我一直在这个网站上寻找答案,并尝试了很多解决方案。然而,由于我对系统进行编码的方式,我似乎从未得到任何工作。我还尝试过其他网站,例如:
http://tips4java.wordpress.com/2009/03/12/table-from-database/ http://tips4java.wordpress.com/2009/03/12/table-from-database/
http://chang.advits.com/populate-data-from-database-into-jtable-in-netbeans http://chang.advits.com/populate-data-from-database-into-jtable-in-netbeans
并查看了 jTable、DefaultTableModel 和 ResultSetTableModel 的 Javadocs - 我绝对没有尝试过通过学习等方式自己做到这一点......
我怎样才能用我的系统建模方式来做到这一点?另外,无论如何修复我的方法还是应该完全废弃它?