我想使用在另一个类

时间:2015-05-18 09:26:12

标签: java mysql sql swing jtable

我有一个jtable" clientTable"在clientRecorderUI JFrame(扩展JFrame)中。我还有一个名为databaseHandler的类(扩展clientRecorderUI的公共类),我想用它作为控制器/模型(MVC-esque有点设计)。 databaseHandler中的方法称为populateTable(一个用数据库值填充表的sql)。

我还创建了在clientRecorderUI中测试相同的方法,看看代码是否合理,它是否像魅力一样(因此populateTable();在评论中)

如何从另一个类中正确调用方法并使用其图形组件? 我正在研究NetBeans btw。

提前谢谢!

这就是我在windowActivated上调用方法的方法:

private void formWindowActivated(java.awt.event.WindowEvent evt) {                                     
    databaseHandler tester=new databaseHandler();
    tester.populateTable(); // TODO add your handling code here:
    //populateTable();

}       

这是databaseHandler中的方法:

  protected void populateTable(){

       String query="Select * from clienttable";
       try {  

           //Call connectDB method to connect to database
           Connection dbCon=mySqlConnection.ConnectDB();

           //Prepare the query
           PreparedStatement pst=dbCon.prepareStatement(query);

           //return ResultSet
           ResultSet rs=pst.executeQuery(query);
           clientTable.setModel(DbUtils.resultSetToTableModel(rs));


       } catch (SQLException ex) {
           Logger.getLogger(databaseHandler.class.getName()).log(Level.SEVERE, null, ex);
       }


   }

1 个答案:

答案 0 :(得分:2)

populateTable返回TableModel

protected TableModel populateTable(){

   TableModel model = null;
   String query="Select * from clienttable";
   try {  

       //Call connectDB method to connect to database
       Connection dbCon=mySqlConnection.ConnectDB();

       //Prepare the query
       PreparedStatement pst=dbCon.prepareStatement(query);

       //return ResultSet
       ResultSet rs=pst.executeQuery(query);
       model = DbUtils.resultSetToTableModel(rs);


   } catch (SQLException ex) {
       Logger.getLogger(databaseHandler.class.getName()).log(Level.SEVERE, null, ex);
   }

   return model;
}

然后当你调用它时,只需将它应用于你所拥有的JTable实例

private void formWindowActivated(java.awt.event.WindowEvent evt) {                                     
    databaseHandler tester=new databaseHandler();
    TableModel model = tester.populateTable();
    // Apply it do what ever JTable you have
}