我需要根据某些子元素的数量禁用按钮。
我尝试了类似的方法,这是不对的:
HBox userDataHBox = new HBox(new Label("1"), new Label("2"), new Label("3"));
Button btn = new Button();
btn.disableProperty().bind(
Bindings.notEqual(userDataHBox.getChildren().size(), 3)
);
答案 0 :(得分:6)
userDataHBox.getChildren().size()
just产生列表的当前大小。没什么可观察的。您可以使用Bindings.size
来获得IntegerBinding
的可用大小:
btn.disableProperty().bind(
Bindings.size(userDataHBox.getChildren()).isNotEqualTo(3));
答案 1 :(得分:4)
您在这里:
btn.disableProperty().bind(
Bindings.createBooleanBinding(()-> userDataHBox.getChildren().size() != 3, userDataHBox.getChildren())
);