在其他类Java中使用swing控件

时间:2015-12-08 08:41:38

标签: java mysql

编辑:我现在可以通过在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在那里追加行。可能吗?或者最好的方法是什么?

2 个答案:

答案 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实例。并且不会被推荐