Discussion:
[問題] 多個panel和ActionListener的問題
(时间太久无法回复)
痞子軍團團長
2006-11-23 23:58:55 UTC
Permalink
※ 引述《neigence (心夜)》之銘言:
: 假如我有一個程式
: public class myFrame extends JFrame{
: public AAA(){
: Container con=getContentPane();
: con.add(myPanelA);
: con.add(myPanelB);
: con.add(myPanelC);
: .....
: }
: }
: 每一個panel都也許具有許多的gui元件 像JButton JTextfield
: 每一個panel都在不同的class
: 比方說 我按下myPanelB上的某個button 會影響讓myPanelA畫出
: 什麼東西 或發生某些行為 或更動變數狀態
: 那..理論上? 這幾個myPanel下所有gui元件的ActionListener
: 都要寫在myFrame這個程式下面嚕?..這樣子光這個檔下面的
: actionPerformed 真的會太多了

基本上,只要你撰寫 actionPerformed() 的地方
可以叫用到你要變更的物件
寫在哪裡其實都可以

只不過寫在你的 myFrame.java 下
(也許)可以少傳一些 parameter,所以感覺比較方便,如此而已

--
 侃侃長論鮮窒礙  網站:http://www.psmonkey.idv.tw
 眾目睽睽無心顫  個人版:telnet://legend.twbbs.org
 煢居少聊常人事 
 殺頭容易告白難  歡迎參觀 Java 版(@ptt.cc)精華區 \囧/

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.136.153.56
大家來用linux^^/
2006-11-25 18:04:38 UTC
Permalink
MVC?

Where's your "MODEL" and "CONTROLLER"? (「m」V「c」)

Please describe it, thanks.

--
〒作者:H45 來自:85-205.dorm.ncu.edu.tw
◎二進位的世界【140.115.50.50‧binary.csie.ncu.edu.tw】
!H45
2006-11-25 23:28:07 UTC
Permalink
※ 引述《***@bbs.sayya.org (foolish)》之銘言:
: ※ 引述《***@binary.csie.ncu.edu.tw (大家來用linux^^/)》之銘言:
: > MVC?
: > Where's your "MODEL" and "CONTROLLER"? (「m」V「c」)
: > Please describe it, thanks.
: MODEL --> CheckableData
: Controller --> Listener can send message
: to model do something.
: ====================================================================
: 文中的最後寫了,稍為乎略了策略模式。
: 是因為如果直接把Listener的功能對應為Controller
: 所需要的功能,會使得程式必定要在GUI的情況才能跑
: 也就是說Controller與View產生了藕合,難以切割
(原文以下恕刪)

是的,就是這個問題

Controller與View的程式碼黏在一起!!

當一個 Frame 有很多 Component 的時候
每個 Component 都要處理不同的事件
甚至有些事件之間還有依存關係
為了解決這些複雜的事件
最好把 Controller 與 View 分割開來

這也就是為什麼 MVC Pattern 要把 Model, Controller, View 切割得這麼乾淨了!

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.205.85

继续阅读narkive:
Loading...