gpt4 book ai didi

java - 组合框依赖于另一个组合框 - JavaFX

转载 作者:行者123 更新时间:2023-11-29 04:36:36 24 4
gpt4 key购买 nike

我有三个组合框:国家、州和城市

我怎样才能成为另一个人的依赖者?例如,如果我选择巴西,则会出现他们的州,然后会出现所选州的城市。但是如果我在这个国家选择美国就会显示他们的州

我使用的数据库是MySQL,如果你需要对数据库进行一些配置也告诉我......你是第一次使用它,非常感谢你。

最佳答案

向国家组合框注册一个监听器,并在所选项目发生变化时更新状态组合框:

cbxCountry.valueProperty().addListener((obs, oldValue, newValue) -> {
if (newValue == null) {
cbxState.getItems().clear();
cbxState.setDisable(true);
} else {
// sample code, adapt as needed:
List<State> states = stateDAO.getStatesForCountry(newValue);
cbxState.getItems().setAll(states);
cbxState.setDisable(false);
}
});

如果您愿意,您也可以使用绑定(bind)来做到这一点:

cbxState.itemsProperty().bind(Bindings.createObjectBinding(() -> {
Country country = cbxCountry.getValue();
if (country == null) {
return FXCollections.observableArrayList();
} else {
List<State> states = stateDAO.getStatesForCountry(country);
return FXCollections.observableArrayList(states);
}
},
cbxCountry.valueProperty());

(如果您想要上述解决方案中的禁用功能,还可以执行 cbxState.disableProperty().bind(cbxCountry.valueProperty().isNull());)。

关于java - 组合框依赖于另一个组合框 - JavaFX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39965950/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com