我有两个组合框的一个可观察列表。当用户在其中一个框中选择一个项目时,我希望在另一个框中禁用选中的项目,反之亦然。在下面的代码中,我坚持在一边做:
public class Controller implements Initializable {
ObservableList<String> items = FXCollections.observableArrayList("first", "second", "third", "forth", "fifth");
@FXML
private ComboBox<String> first;
@FXML
private ComboBox<String> second;
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
first.getItems().addAll(items);
second.getItems().addAll(items);
first.setCellFactory(new Callback<>() {
@Override
public ListCell<String> call(ListView<String> stringListView) {
return new ListCell<>() {
@Override
protected void updateItem(String s, boolean b) {
super.updateItem(s, b);
if (b)
setText(null);
else {
if (second.getValue() != null) {
if (second.getValue().equals(s)) {
setText(s);
setDisable(true);
} else setText(s);
}
}
}
};
}
});
}
}
如何禁用在“第二个”组合框中选择的“第一个”组合框中的项?
暂无答案!
目前还没有任何答案,快来回答吧!