【问题标题】:javafx ComBobox add listener on selected item valuejavafx ComBobox在所选项目值上添加侦听器
【发布时间】:2016-12-25 19:33:17
【问题描述】:

我需要测试一个选中项的值来调用不同的方法,所以我写了这段代码添加了一个监听器,但是代码生成了一个语法错误

@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*/
            }
        }
    });

我也不需要一个旧值和一个新值,只是测试选择的值,我如何传递参数?

【问题讨论】:

  • 试试ObservableValue&lt;? extends String&gt; composant而不是ObservableValue&lt; String&gt; composant
  • 就是这样,会产生更多错误
  • 另外说明,改变的方法不应该像上面链接中描述的那样抛出异常。编辑您的问题以显示生成的堆栈跟踪。
  • 我无法编译得到 printstacktrace,因为这是语法错误

标签: javafx combobox


【解决方案1】:

一个更简单且避免一些额外代码行的解决方案是向组合框添加一个动作侦听器(最好来自场景构建器),如下所示:

private void comboAction(ActionEvent event) {

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

}

【讨论】:

  • 最佳答案!谢谢
【解决方案2】:

如果有人错过了,OP 在帖子中回答:

我发现了错误,这是新代码,希望对其他人有所帮助

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 2019-05-13
    • 2013-12-17
    • 2018-07-13
    相关资源
    最近更新 更多