Re: [問題] class之間怎麼互相溝通??
※ 引述《carlcarl (carl)》之銘言:
: 後來照著推文建議 嘗試用Observable和observer
: 可是後來弄完之後卻發現 我輸入網址 按按鈕 網頁卻不會有任何改變!?
: 我的架構是一個menuBar 一個toolBar 一個網頁的browser(CarlBrowser)
: 然後再用一個JFrame的大Browser(CarlcarlBrowser)把三個包起來
: 最後再用一個Main class 中用main函式 宣告一個上面的大browser
: 我的流程是從一個toolBar(Observable)中 按了按鈕之後
: 在按鈕的事件中 宣告一個有extends Observable的物件A
: 將一個物件藉著A的notifyObservers傳到browser(observer)
: 在browser 的 update()將傳的物件轉型 判斷其中的字串是什麼
: 來決定 1.前往網頁 2.上一頁 3.下一頁
: 接著執行相對應的函式
: 我在函式中有試著看傳的字串 內容也是我想要的 JEditorPane的setPage應該也有執行
: 但是網頁就是不會變更...
: 可是我在Carlbrowser或CarlcarlBrowser的建構式裡做 卻又可以顯示.........
: 超連結的部份也是ok..
: 不知道哪邊有錯??
: 可以幫我看一下嗎@@
: menuBar沒影響到 所以應該沒關係
: http://rafb.net/p/ZyHZQv99.html toolBar
: http://rafb.net/p/pH6lYQ93.html browser的網頁
: http://rafb.net/p/UaLjXx99.html 用了observable的class
: http://rafb.net/p/flTLYz50.html notify所傳遞的物件
: http://rafb.net/p/mhj1mr50.html 大browser
: http://rafb.net/p/iKPzbO25.html Main class
: 主要應該是observer 和 observable的問題吧..
自問自答一下 剛剛測試出來 可以跑了= =+
我的toolBar 本來是extends JPanel
因為不能再繼承 Observable
所以才會另外寫一個class extends Observable
但是這樣就變得很奇怪了
網頁瀏覽器(CarlBrowser)本來是要監看toolBar 怎麼後來會變成去看其他的東西呢??
我想說不定這是我的網頁為什麼不會跑的原因
後來就把toolBar的extends JPanel改掉
改成內含一個JPanel 再extends Observable
然後再另外做一個函式 回傳這個JPanel
CarlBrowser的建構式改成 public CarlBrowser(Observable o)
最後面 o再加入這個觀察者
在CarlcarlBrowser(大瀏覽器) 裡面
toolBar = new CarlToolBar();
browser = new CarlBrowser(toolBar);
幫toolBar多加一個觀察者這樣
這樣就可以跑了@@
在爬前面文的時候 也看到有一個是extends JPanel的
然後他說因為不能多重繼承 所以不知道怎麼加Observable...
上面這個是我唯一想到的方案 不知道還有沒有什麼好方法@@
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.171.138.217
推
06/16 15:02, , 1F
06/16 15:02, 1F
→
06/16 15:11, , 2F
06/16 15:11, 2F
→
06/16 15:30, , 3F
06/16 15:30, 3F
→
06/16 15:31, , 4F
06/16 15:31, 4F
推
06/16 15:38, , 5F
06/16 15:38, 5F
推
06/16 15:47, , 6F
06/16 15:47, 6F
→
06/16 15:52, , 7F
06/16 15:52, 7F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):