web-dev-qa-db-ja.com

javafx ComBoboxは選択された項目値にリスナーを追加します

選択した項目の値をテストして異なるメソッドを呼び出す必要があるため、リスナーを追加してこのコードを記述しますが、コードは構文エラーを生成します

@FXML
private JFXComboBox<String> cmbComp;

cmbComp.valueProperty().addListener(new ChangeListener<String>() {
        public void changed(ObservableValue<String> composant, String oldValue, String newValue) throws SQLException {

            if(/*test item value*/){
                /*do something*/
            }else{
                /*do other thing*/
            }
        }
    });

また、古い値と新しい値は必要ありません。選択した値をテストするだけで、どのように引数を渡すことができますか?


私はエラーを見つけました、ここに新しいコードがあります、それが他の人を助けることを願っています

cmbComp.getSelectionModel().selectedItemProperty().addListener( (options, oldValue, newValue) -> {
           System.out.println(newValue)
    }
    ); 
13
devhicham

もう少し簡単で、コードの余分な行を避けるソリューションの1つは、次のようにアクションリスナーを(理想的にはシーンビルダーから)コンボボックスに追加することです。

private void comboAction(ActionEvent event) {

    System.out.println(comboBox_DbTables.getValue());

}
3
rainer