2016-12-25 12 views
2
나는 다른 방법을 호출 할 선택한 항목의 값을 테스트해야

에 리스너를 추가, 그래서 청취자를 추가하는 코드를 쓸 수 있지만 코드가자바 FX 콤보 상자는 선택한 항목의 값

@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

try ObservableValue composant'를 확장하십시오. – Kachna

+0

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

+0

을 보면 더 많은 오류가 발생합니다. – devhicham

답변

2

하나 개의 솔루션을하는 데 도움이 코드의 일부 여분의 라인을 방지 희망, 새로운 코드 (이상적으로 씬 빌더에서) 콤보 상자에 다음과 같이 입력하십시오.

private void comboAction(ActionEvent event) { 

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

}