编辑:我现在可以通过在tableData
中设置MainFrame.java
个实例来访问Database.java
,但它无效。没有添加行。
我是Java新手,还在学习。我正在使用mySQL交互制作桌面应用程序。我有一个JTable
,它在MainFrame.java
中声明如此
public javax.swing.JTable tableData;
然后我有一个Database.java
,如果与数据库交互,它有所有方法。然后在Database.java
我有功能
private void writeResultSet(ResultSet resultSet) throws SQLException {
MainFrame mainframe = new MainFrame();
DefaultTableModel model = (DefaultTableModel)mainframe.tableData.getModel();
// resultSet is initialised before the first data set
while (resultSet.next()) {
String id = resultSet.getString("id");
String name = resultSet.getString("name");
model.addRow(new Object[]{id, name});
}
}
然后在该函数上我想访问tableData
JTable,因为我将基于resultSet
在那里追加行。可能吗?或者最好的方法是什么?
答案 0 :(得分:1)
最好的方法是一本书^^
使用表模型访问表数据,最佳做法是使用DefaultTableModel
DefaultTableModel model = new DefaultTableModel();
JTable table = new JTable(model);
现在,只需在表格模型中添加/删除数据,即可轻松添加/删除表格中的数据
现在,您可以通过查询ResultSet
ResultSet rs; // i really hope you already have performed your query
while(rs.next() ){
String str = rs.getString(...); //your Code here
//now you can add your data to the model:
model.addRow(new Object[]{str});
}
老实说 - 这只是一个10行教程,我想你必须做更多的练习!但是不要感到尴尬,我想你会很快学会^ _ ^
答案 1 :(得分:0)
最好只获取结果集并更新MainFrame类中的tableData。
此外,如果您想在Database.java类中更新它,您需要在此处拥有MainFrame.java实例。并且不会被推荐