2016-11-02 41 views
0

おはよう私は全く新しいコーディングです。私は他のライブラリ項目の他にコンボボックスを使用するアプリケーションを構築しています。私が直面している問題は、ドロップダウンをクリックするたびに項目値が重複するように、MySQLのDbからコンボボックス項目を入力しようとしている間です。JavaFxのコンボボックス(mysql)

どうすればこの問題が発生しないようにすることができますか?私は自分自身のアプローチ自体が間違っている可能性があることを理解しています。

@FXML 
public void getStation() { 
    String sqlStationName = " select * from station "; 

    try { 
     conn = (Connection) DBConnection.connect(); 
     PreparedStatement pstStn = conn.prepareStatement(sqlStationName); 
     ResultSet stnRS = pstStn.executeQuery(sqlStationName); 

     while (stnRS.next()) { 

     comboBoxStation.getItems().add(stnRS.getString("stationName")); 


     } 

     stnRS.close(); 
     pstStn.close(); 
     conn.close(); 

    } catch (SQLException ex) { 
     System.err.println("ERR" + ex); 
    } 

} 
+0

おそらく、追加する前にアイテムをクリアすることができます。私は確信していますが、実際にすべてのクリックでクエリを実行する場合は、少し過度の過ちであるようです。 –

+0

'getStation'メソッドの使い方は? '@ FXML'(パブリックメソッドでは不要ですが)は、fxmlファイルからイベントハンドラとして使用することを示しているようです。この方法をどのように使用するかについての情報を質問に追加してください。 – fabian

+0

あなたの回答ありがとうございます。@ el_chupacabraあなたの観察は正しいです、私は本当にすべてのクリックで照会したくない、私はちょうどユーザーがコンボボックスボタンをクリックしてリセットしたり、閉じています。 Fabianはい@FXMLの使い方は初心者の間違いですが、このメソッドはマウスのクリックで呼び出されます。 –

答えて

0

[OK]をので、私は、コントローラ内のinitialize()メソッドに機能を移動ステーション

 private ObservableList<String> stationsList = FXCollections.observableArrayList(); 

    @Override 
public void initialize(URL url, ResourceBundle rb) { 
    // 
    String sqlStationName = " select * from station "; 

    try { 
     conn = (Connection) DBConnection.connect(); 
     PreparedStatement pstStn = conn.prepareStatement(sqlStationName); 
     ResultSet stnRS = pstStn.executeQuery(sqlStationName); 

     while (stnRS.next()) { 

      stationsList.add(stnRS.getString("stationName")); 

     } 

     stnRS.close(); 
     pstStn.close(); 
     conn.close(); 

    } catch (SQLException ex) { 
     System.err.println("ERR" + ex); 
    } 

} 

呼ばObservabaleリストを作成し、元の機能にのみこの行を左....働いているようだ。

@FXML 
private void getStation() { 

    comboBoxStation.setItems(stationsList); 
} 
関連する問題