作者carlcarl (carl)
看板java
标题Re: [问题] class之间怎麽互相沟通??
时间Mon Jun 16 12:18:00 2008
※ 引述《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
1F:推 wannawanna:不用class 用interface? 06/16 15:02
2F:→ carlcarl:恩 其实我对用interface还没啥概念~"~ 06/16 15:11
3F:→ carlcarl:恩......刚刚再看了一下 似乎跟我原本的作法比较 06/16 15:30
4F:→ carlcarl:类似....我再用原来的方法改改看好了~"~ 06/16 15:31
5F:推 slalala:比较好的作法是介面 底成所有需要被监视的物件都要实作 06/16 15:38
6F:推 slalala:话说我也只是嘴跑只看过写法 没有自己做过= = 06/16 15:47
7F:→ TonyQ:手边能用的工具(所学、环境所给)限制结果, 06/16 15:52