당신은 그것을 클릭하여 ComboBox
팝업을 열 때마다, 당신은 모든 항목을 (어떤을해야 제거 :
이 여기 FXML 코드 내부의 컨트롤러 클래스
@FXML
public ComboBox routineGridShowComboBox;
public void actionForRoutineGridShowComboBox(ActionEvent event){
System.out.println(routineGridShowComboBox.getValue());
}
public void addOptionToComboBox(){
routineGridShowComboBox.getItems().removeAll(routineGridShowComboBox.getItems());
routineGridShowComboBox.getItems().addAll("Hello","World");
}
이며, 항목 목록 btw에 List.clear
을 호출하여 완료). ComboBox
의 값은 items
에없는 값일 수 없으므로 값은 null
으로 설정됩니다. ComboBox
팝업의 항목을 제외한 다른 곳을 클릭하여 새 값을 선택하지 않으면 선택한 항목이 변경되지 않습니다.
클릭 할 때마다 모든 항목을 분명히 지우고 읽어야합니다. 항목을 한 번만 추가하십시오. 이 경우 initialize
방법이이를 수행하기에 적합한 장소가됩니다.
컨트롤러로부터
addOptionToComboBox
방법을 제거
public void initialize() {
routineGridShowComboBox.getItems().setAll("Hello", "World");
}
를 추가하거나 기존 initialize
있어서 신체의 코드를 추가한다.
충분한 정보를 제공하지 않았습니다. 아무도 e를 알지 못합니다. 지. '# addOptionToComboBox'는'ComboBox'가 어떻게 채워지는지, 어떤 일들이 일어나고 있는지 등을 말합니다. – Roland
게시 한 내용은 설명하는 것을 수행하지 않습니다 - 항목을 지우고 마우스 클릭으로 다시 추가합니다. 그러나 나는 왜이 일을하는지 이해하지 못합니다. 콤보가 열렸을 때 선택을 지우려면, 예를 들어 'routineGridShowComboBox.setOnShowing ((e) -> routineGridShowComboBox.setValue (null));'과 같이 할 수 있습니다. – DVarga