我的按钮已禁用,但是一旦我填写了用户名,密码和comboBox,我就希望启用该按钮。所以我为此使用了绑定,但是当我将其与我的comboBox一起使用时,无法将绑定应用于给定的类型错误。还有另一种方法可以执行此操作,因为我想在将来添加日期和微调框。
button.disableProperty().bind(
Bindings.or(
username.textProperty().isEmpty(),
password.textProperty().isEmpty(),
comboBox.valueProperty().isNull()
)
);
最佳答案
Bindings.or
仅使用2个参数,而不是3个。您需要两次应用or
:
button.disableProperty().bind(
username.textProperty().isEmpty().or(
password.textProperty().isEmpty().or(
comboBox.valueProperty().isNull()))
);
或者,您可以使用
createBooleanBinding
,它也允许可读性更高的表达式:button.disableProperty().bind(Bindings.createBooleanBinding(
() -> username.getText().isEmpty() || password.getText().isEmpty() || (comboBox.getValue() == null),
username.textProperty(), password.textProperty(), comboBox.valueProperty()
));
关于java - 将按钮绑定(bind)到多个属性不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51364207/