java - 如何禁用组合框中的项目?
问题描述
我有两个组合框的一个 ObservableList。当用户选择其中一个项目时,我希望在另一个框中禁用所选项目,反之亦然。在下面的代码中,我坚持这样做:
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);
}
}
}
};
}
});
}
}
如何禁用在“第二个”组合框中选择的“第一个”组合框中的项目?
解决方案
推荐阅读
- mysql - 使用节点 js 中的 where 子句和 express API 选择查询会引发错误
- php - vuejs2 使用 v-model 将值从 php 设置为 vuejs2
- java - 编译器只考虑第一个 EPL 语句
- tensorflow - 为什么谷歌深度学习 VM 上的 tensorflow 不使用 GPU?
- c - Git HTTP错误'致命:协议错误:错误的行长度字符:'
- c - 将矩阵传递给函数后的分段错误
- cassandra - Cassandra 未正确恢复快照数据
- css - 在 CSS 中移动元素
- sql - 为什么在 SQL 连接语句中使用 Group By 而在子查询中使用 Order By?
- javascript - 如何通过jquery函数将值传递给输入元素