我想實現在JavaFX應用程序Observer模式。我從來沒有在這裏問過一個問題,但這讓我有點瘋狂。JavaFX和Observer模式 - 更新UI
基本上我試圖用Observer模式來監視分析真實電話號碼的文件中的類,並自動更新用戶界面的文件進行解析。
之前,我得到了我的問題,這是我的代碼:
抽象類Observer.java
public abstract class Observer
{
public PhoneBook numbers;
public abstract void update();
}
我有一個實現此一類:
public class PhoneBookObserver extends Observer {
public PhoneBookObserver(PhoneBook numbers)
{
this.numbers = numbers;
this.numbers.attach(this);
}
@Override
public void update()
{
System.out.println(""NUMBER - : " + numbers.GetNumbers());
}
}
在班級做解析,我創建了一個新的PhoneBookObserver
public PhoneBook ParsePhoneBook()
{
PhoneBook nums= new PhoneBook();
PhoneBookObserver p = new PhoneBookObserver(nums);
// ... Parsing of file - works fine
return nums;
}
目前這個運行和PhoneBookObserver我從更新的println()輸出。
我的問題是:
- PhoneBookObserver的更新方法可以升級我的UI給我嗎?它如何訪問我的控制器中的JavaFx元素?
- 可我只是讓我的控制器的觀察員,覆蓋update()方法,並用它來從我的控制器內更新我的UI元素?那不好嗎?
排序:[JavaFX屬性](http://docs.oracle.com/javase/8/javafx/properties-binding-tutorial/binding.htm#JFXBD107)基本上已經爲您實現了觀察者模式。爲什麼不使用這些並避免重新發明輪子? –
我在哪裏添加監聽器?在初始化? –
通常,是的。這取決於你如何設置,但這在大多數情況下是明顯的選擇。 (監聽器只是觀察者模式術語中的一個可觀察對象,JavaFX屬性或可觀察列表是可觀察對象。) –