2016-12-25 72 views
2

我需要测试所选项目的值来调用不同的方法的听众,所以我写这篇文章的代码添加监听,但代码生成语法错误JavaFX的组合框上添加所选项目价值

@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

尝试'ObservableValue <?扩展String> composant'而不是'ObservableValue < String> composant' – Kachna

+0

参见http://docs.oracle.com/javafx/2/api/javafx/beans/value/ChangeListener.html – Kachna

+0

它是这样的,它会产生更多的错误 – devhicham

回答

2

一个解决方案,更直接一点,避免一些代码行额外的添加操作监听器(理想情况下来自场景制作者)到组合框,如下所示:

private void comboAction(ActionEvent event) { 

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

}