2014-09-22 59 views
1

我一直試圖使用來自mysql ResultSet的數據填充JavaFX TableView。我在這個網站JavaFX - Background Thread for SQL Query上偶然發現了一個類似的問題,我一直在尋找一個多星期。這裏的代碼有一些幫助,但我唯一遇到的問題是查詢從數據庫中選擇了一列。RE:JavaFX - 用於SQL查詢的後臺線程

我需要的是在JavaFX TableView中從select * from tableName顯示ResultSet。如果有人能幫助我解決這個問題,我將不勝感激。

+0

更新表視圖請告訴我問題使用相同的代碼查詢比一列多?您可以通過名稱rs.getString(「whatever_column_you_have_in_result_set」);從結果集中獲取值並將其傳遞給模型實體:new MyModelEntity(retrieveValue1,retirevedValue2 ...)等等。 – SimY4 2014-09-22 05:10:57

+0

添加到@SimY4的建議,JavaFX表不能直接讀取'resultSet',所以你必須這樣做。您需要從ResultSet中創建一個'ObservableList '並將其設置爲TableView的數據'table.setData(list)'。要了解更多關於數據如何設置爲tableView的信息,可以通過[this example](http://docs.oracle.com/javafx/2/ui_controls/table-view.htm#CJABHGAJ)。 **如果你的模型是'MyModelEntity',那麼你的TableView必須是'TableView '**類型 – ItachiUchiha 2014-09-22 05:48:45

回答

1

嘿我使用這些實施例:

SwingWorker<Boolean, Integer> worker = new SwingWorker<Boolean, Integer>(){ 
      @Override 
      /* 
      * Note: do not update the GUI from within doInBackground. 
      */ 
      protected Boolean doInBackground() throws Exception { 
       boolean reqMess = true; 
       do{ 
       }while(SOMETHINGHAPPEND); 
       publish(); // with publish() you go to process 
       return false; 
      } 
      @Override 
      protected void process(List<Integer> chunks){ 
//update the gui frome here 
      } 

      @Override 
      protected void done() { 
       //if you want an last task before a quit do program it here 
      } 
     }; worker.execute(); 
    } 

我認爲有可能通過使用該方法的Funktion