कोई conjunction एपीआई JavaFX 2.2 मंच में परिभाषित किया गया है:
ObservableList<BooleanProperty> list;
list = FXCollections.observableList(new ArrayList<BooleanProperty>));
BooleanProperty emptyProperty = new SimpleBooleanProperty();
emptyProperty.bind(Bindings.conunction(list));`
वहाँ के रूप में इस तरह के एक विधि है।
BooleanBinding उप-वर्गीकरण करके आप ConjunctionBooleanBinding
(उर्फ AllTrueBinding
) बना सकते हैं।
अपने नए वर्ग के निर्माता में ObservableList स्वीकार करें, और एक अधिरोहित computeValue विधि में low level binding api का उपयोग पर आधारित तार्किक एक साथ सूची में बूलियन मूल्यों के सभी Anding बाध्यकारी मान सेट करने के।
यहां एक नमूना कार्यान्वयन है। नमूना आगे के प्रदर्शन को अनुकूलित किया जा सकता है और वीक संदर्भों का उपयोग कर सकता है, इसलिए इसे मैन्युअल स्वभाव की आवश्यकता नहीं है।
import java.util.*;
import javafx.beans.property.*;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
public class ListBindingTest {
final BooleanProperty a = new SimpleBooleanProperty(true);
final BooleanProperty b = new SimpleBooleanProperty(true);
final BooleanProperty c = new SimpleBooleanProperty(true);
final BooleanProperty d = new SimpleBooleanProperty(true);
final ObservableList<BooleanProperty> booleanList =
FXCollections.observableArrayList(a, b, c, d);
public static void main(String[] args) {
new ListBindingTest().test();
}
private void test() {
AllTrueBinding at = new AllTrueBinding(booleanList);
System.out.println(at.get() + forArrayString(booleanList));
b.set(false);
System.out.println(at.get() + forArrayString(booleanList));
b.set(true);
System.out.println(at.get() + forArrayString(booleanList));
booleanList.add(new SimpleBooleanProperty(false));
System.out.println(at.get() + forArrayString(booleanList));
booleanList.remove(3, 5);
System.out.println(at.get() + forArrayString(booleanList));
at.dispose();
}
private String forArrayString(List list) {
return " for " + Arrays.toString(list.toArray());
}
}
धन्यवाद, मैं आपकी सलाह के लिए इस्तेमाल किया
और यहाँ प्रदर्शित करने के लिए यह कैसे काम करता एक परीक्षण दोहन है। – dpelisek