[英]Java Observer and Observable not working properly between applications
我有一個包含默認列表模型的主JFrame應用程序。 我希望如果我修改這些記錄上的內容,第二個正在運行的應用程序會自動更新。
到目前為止,我有一個MainController類,它實現了監聽器並覆蓋了更新方法:
public class MainController implements ActionListener, Observer {
public void update(Observable o, Object o1) {}
}
和一個擴展Observable的簡單類
public class Comanda extends Observable{}
我的問題是,如果我從第一個應用程序中刪除一個記錄,第二個列表不會更新。 程序正在從文本文件中刪除記錄,但不更新默認列表模型。 編輯或添加也存在同樣的問題。
我嘗試在更新方法中添加“reloadList()”,但這不起作用。 想法?
您有一個名為addObserver
上Comanda
並添加MainController
作為Observer
? 此外,當您發生更改時,您是否正在調用setChanged
和notifyObservers
?
查看您發布的代碼,我可以看到您沒有將Observer
和Observable
Objects連接在一起。 正如我所說,你必須在你的Observable
對象上調用addObserver
,然后在你的Observable
對象中,每當做出改變時你需要調用setChanged
然后調用notifyObservers
。 只有在調用notifyObservers
才會調用已添加的任何Observer
的update
方法。
你在你的問題中說過,當你刪除一條記錄時,列表不會更新,這讓我覺得Comanda
可能不是你想要Observe
的Object
。 保存記錄List
的那個對象應該是Observable
。
有關Observer / Observable模式的更多信息,請查看此信息。
您要做的是稱為“進程間通信” - 將數據從一個應用程序發送到另一個應用程序。 有各種方法可以做到這一點; Google搜索會為您提供更多信息。 Observable
僅適用於單個應用程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.