Re: [問題] class之間怎麼互相溝通??

看板java作者 (carl)時間16年前 (2008/06/16 12:18), 編輯推噓3(304)
留言7則, 4人參與, 最新討論串3/3 (看更多)
※ 引述《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
不用class 用interface?
06/16 15:02, 1F

06/16 15:11, , 2F
恩 其實我對用interface還沒啥概念~"~
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
文章代碼(AID): #18LUbvtQ (java)
文章代碼(AID): #18LUbvtQ (java)