如何禁用组合框中的项?

lkaoscv7  于 2021-06-29  发布在  Java
关注(0)|答案(0)|浏览(220)

我有两个组合框的一个可观察列表。当用户在其中一个框中选择一个项目时,我希望在另一个框中禁用选中的项目,反之亦然。在下面的代码中,我坚持在一边做:

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);
                            }
                        }
                    }
                };
            }
        });
    }
}

如何禁用在“第二个”组合框中选择的“第一个”组合框中的项?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题