我需要测试所选项的值来调用不同的方法,所以我写这段代码添加一个监听器,但代码生成语法错误
@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)
}
);
答案 0 :(得分:2)
一个更直接且避免一些额外代码行的解决方案是将动作侦听器(理想情况下来自场景构建器)添加到组合框中,如下所示:
private void comboAction(ActionEvent event) {
System.out.println(comboBox_DbTables.getValue());
}
答案 1 :(得分:0)
如果有人错过了,OP 在帖子中回答:
<块引用>我发现了错误,这里是新代码,希望对大家有帮助
cmbComp.getSelectionModel().selectedItemProperty().addListener((options, oldValue, newValue) -> {
System.out.println(newValue);
});