我需要进行多次绑定并将它们发送到同一个按钮。
现在我有BooleanBinding
:
BooleanBinding even = new BooleanBinding() {
{ super.bind(plaintextHex.textProperty()); }
@Override
protected boolean computeValue() {
return ((plaintextHex.getText().length() % 2) != 0);
}
};
这一个:
BooleanBinding maxS = new BooleanBinding() {
{ super.bind(keyHex.textProperty()); }
@Override
protected boolean computeValue() {
return (keyHex.getText().length() > 32);
}
};
如果我想指定一个BooleanBinding
,它看起来像这样:crButton.disableProperty().bind(even);
,但是如果我想要多次设置,我找不到任何关于如何做的信息。这个想法是它看起来像这样:crButton.disableProperty().bind(even, maxS);
,但当然它不会那样工作。我是否必须在同一BooleanBinding
中制作两者,或者有一种方法可以将它们组合在一起?
答案 0 :(得分:0)
根据您的具体需要,您可以
crButton.disableProperty().bind(even.or(maxS));
或
crButton.disableProperty().bind(even.and(maxS));
或者您可以创建单个绑定:
BooleanBinding maxSOrEven = new BooleanBinding() {
{ super.bind(keyHex.textProperty(), plaintextHex.textProperty()); }
@Override
protected boolean computeValue() {
return keyHex.getText().length() > 32 || plaintextHex.getText().length() % 2 != 0 ;
}
};
crButton.disableProperty().bind(maxSOrEven);
等