0
A
回答
0
其實我也不知道爲什麼要這樣做的原因,但如果你不想重複自己對每個屬性,你可以做這樣的事情:
ObservableList<Property<?>> propList = FXCollections.observableArrayList();
private void doSomething(Observable observable){
System.out.println("Handled" + observable.toString());
}
private void attachListener(Property<?> p){
p.addListener(new InvalidationListener() {
@Override
public void invalidated(Observable observable) {
doSomething(observable);
}
});
}
// In start, or whereever you want to add the properties
propList.addListener(new ListChangeListener<Property<?>>(){
@Override
public void onChanged(javafx.collections.ListChangeListener.Change<? extends Property<?>> change) {
while(change.next()){
if(change.wasAdded())
for(Property<?> item : change.getAddedSubList()){attachListener(item);}
}
}
});
BooleanProperty a = new SimpleBooleanProperty(false);
BooleanProperty b = new SimpleBooleanProperty(false);
IntegerProperty c = new SimpleIntegerProperty(1);
propList.addAll(a,b,c);
a.set(true);
a.set(false);
b.set(true);
c.set(2);
輸出是:
HandledBooleanProperty [value: true]
HandledBooleanProperty [value: false]
HandledBooleanProperty [value: true]
HandledIntegerProperty [value: 2]
作用:
您的屬性添加到ObservableList
,當列表獲得一個新的元素,你的附加處理程序爲InvalidationListener
,因此您可以通過向列表中添加元素來控制屬性集,而不是逐個添加偵聽器。
+0
您附加了聽衆,但您永遠不會分開他們...... – fabian
相關問題
- 1. 屬性更改通知屬性
- 2. 如何實現屬性更改通知
- 3. 更改javafx對象屬性
- 4. 如何更改屬性更改時任何控件的外觀?
- 5. 修改時間戳更新對類屬性的任何更改
- 6. 通知屬性更改不工作
- 7. 動態更改JavaFX中的關鍵幀時間屬性
- 8. Observable Collection在MVVM中更改屬性時通知
- 9. 如何在javaFX中添加更改偵聽器到任務的消息屬性
- 10. Converter中進行的更改會通知綁定屬性的更改嗎?
- 11. 如何通知ViewModel對Model(EntityObject)計算屬性的更改
- 12. 如何通知視圖模型的所有屬性已更改
- 13. 慣用屬性更改scala中的通知?
- 14. 通知更改列表中的對象屬性
- 15. 如何在WebView App中有任何更改時添加通知?
- 16. JavaFX綁定和屬性更改
- 17. Android - 每次更改通知時更改通知的變量
- 18. 當孩子更改屬性值時通知父級
- 19. 當SelectedIndex屬性更改時,ListBox的SelectedItem屬性發生更改?
- 20. 如何在模型更改但沒有屬性更改時通知MVVM中的視圖
- 21. 通知屬性不在UI中「更新」
- 22. 更改按鈕在javafx中的textFill屬性
- 23. xamarin形式通知屬性更改不與IOS的ListView工作
- 24. WPF - 來自UserControl的屬性更改通知
- 25. iPhone上屬性更改通知的標準習慣用語
- 26. 如何通知綁定該屬性值已更改?
- 27. 如何通知QML項目其屬性已更改?
- 28. 如何在屬性值更改時更新從屬屬性?
- 29. JavaFX Combox何時被選中屬性
- 30. 屬性更改未通知,表未更新
向所有人添加相同的無效偵聽器? – Itai
很難看到一個用例,它不涉及創建綁定到感興趣屬性的綁定。你究竟在做什麼? –
@sillyfly 非常感謝。我會嘗試sillyfly的方法如下: property1..addListener((ObservableValue <?extends Object> observable,Object oldValue,Object newValue) - > { // doSomething();}); property2..addListener((ObservableValue <?extends Object> observable,Object oldValue,Object newValue) - > { // doSomething();}); –