2015-07-23 14 views

cevap

12

Onlar Bindings sınıfla bağlı olabilir varsa da bilmek:

ObservableList<String> strings = FXCollections.observableArrayList(); 
IntegerBinding sizeProperty = Bindings.size(strings); 
BooleanBinding multipleElemsProperty = new BooleanBinding() { 
    @Override protected boolean computeValue() { 
     return strings.size() > 1; 
    } 
}; 
4

Kabul edilen cevap doğrudur. İlgili okuyucuların yararı için ek bilgiler sağlayacağım.

ObservableList bir arabirimdir ve bu nedenle size özelliği tutmaz. ListExpression soyut sınıf ObservableList uygulanması ve ReadOnlyIntegerProperty size ve ReadOnlyBooleanProperty empty özelliklerini ekleyerek olduğunu. Bu sınıf, liste özellik sınıflarının tüm kalıtım ağacı için temel sınıftır.

Çoğu kullanıcı ağacın kendileri soyut sınıflar alt sınıf istemeyeceksiniz nedenle, sunulan somut uygulama bakacağız: Adından da anlaşılacağı gibi

ListExpression     (abstract) 
- ReadOnlyListProperty   (abstract) 
    - ListProperty    (abstract) 
     - ListPropertyBase   (abstract) 
     - SimpleListProperty 
      - ReadOnlyListWrapper 

SimpleListProperty olduğu, basit bir liste özelliği - Property numaralı telefondan ObservableList. Diğer SimpleXxxProperty s paralelliğidir. Ayrıca, salt okunur ve okuma ve yazma gereksinimlerini işlemek için bir alt sınıf vardır. Bir ObservableList inşa edilebilir: (sadece ObservableList kullanarak üzeri) bu sınıftan yararları ihtiyaç ve statik Bindings#size yaklaşımı gerekmez kullanmaya karar

SimpleListProperty<String> list = new SimpleListProperty<>(FXCollections.observableArrayList()); 
IntegerProperty intProperty = new SimpleIntegerProperty(); 
intProperty.bind(list.sizeProperty()); 

Kullanıcılar.

+1

Harika cevap! İlk kez 'ListExpression'ı görebildiğim https://docs.oracle.com/javase/8/javafx/api/javafx/beans/binding/ListExpression.html – GOXR3PLUS

+0

@ GOXR3PLUS Muhtemelen hiç bir zaman ListExpression' kodunda göremezsiniz. Çok düşük seviye ve birkaç doğrudan kullanmanız gerekir. Diğer taraftan, SimpleListProperty' ve ReadOnlyListWrapper', kullanıma hazır oldukça faydalıdır. – user1803551

+0

Zaten onu ekledi :). Bir ScrollBar'ın maksimum değerini 'Gözlemlenebilir Listenin Boyutuna - 1' – GOXR3PLUS

İlgili konular