我的按钮被禁用,但是一旦我填写了用户名,密码和comboBox,我就希望启用该按钮。所以我为此使用了绑定,但是当我将其与我的comboBox一起使用时,无法将绑定应用于给定类型错误。还有另一种方法可以执行此操作,因为我想在将来添加日期和微调框。
button.disableProperty().bind(
Bindings.or(
username.textProperty().isEmpty(),
password.textProperty().isEmpty(),
comboBox.valueProperty().isNull()
)
);
答案 0 :(得分:4)
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()
));