JavaFX를 사용하는 응용 프로그램이 있습니다. 여기에는 ObservableList를 사용하는 ListView가 있습니다.JavaFX ObservableList가 자동 선택을 방지합니다.
list.getSelectionModel().selectedItemProperty().addListener(new ChangeListener...
을 사용하여 ChangeListener를 추가했으며 정상적으로 작동합니다. oher 항목을 선택할 때마다 리스너가 호출됩니다.
그러나 ObservableList에서 요소를 제거 할 때도 호출됩니다. 요소가 제거 된 후 목록의 다른 요소가 자동으로 선택되고 수신기가 호출됩니다.
이 동작을 어떻게 막을 수 있습니까?
감사합니다.
final ObservableList<String> fruits = FXCollections.observableArrayList("Apple", "Banana", "Pear", "Strawberry", "Peach", "Orange", "Plum", "Melon", "Cherry", "Blackberry", "Melon", "Cherry", "Blackberry");
final ComboBox fruit = new ComboBox(fruits);
fruit.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>() {
public void changed(ObservableValue<? extends String> ov, String old_val, String new_val) {
//TODO: your remove method
}
});
리스너를 제거하고 항목을 삭제 한 다음 리스너를 다시 추가해야합니다. 이 작업은 코드에 따라 다르지만 항목이 삭제 된 곳이나 getRemoved()를 사용하여 목록 변경 리스너에서 변경 될 수 있습니다. – brian