event mask AWTEvent ACTIONEVENTMASK process Action Event AWTEvent

  • Slides: 58
Download presentation

事件標示(event mask) 對應之事件處理方法 AWTEvent. ACTION_EVENT_MASK process. Action. Event() AWTEvent. ADJUSTMENT_EVENT_MASK process. Adjustment. Event() AWTEvent.

事件標示(event mask) 對應之事件處理方法 AWTEvent. ACTION_EVENT_MASK process. Action. Event() AWTEvent. ADJUSTMENT_EVENT_MASK process. Adjustment. Event() AWTEvent. COMPONENT_EVENT_MASK process. Component. Event() AWTEvent. CONTAINER_EVENT_MASK AWTEvent. FOCUS_EVENT_MASK process. Container. Event() process. Focus. Event() AWTEvent. ITEM_EVENT_MASK Process. Item. Event() AWTEvent. KEY_EVENT_MASK process. Key. Event() AWTEvent. MOUSE_EVENT_MASK process. Mouse. Event() AWTEvent. MOUSE_MOTION_EVENT_MASK process. Mouse. Motion. Event() AWTEvent. TEXT_EVENT_MASK process. Text. Event() AWTEvent. WINDOW_EVENT_MASK process. Window. Event()

利用事件來源處理事件 (5/5) 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:

利用事件來源處理事件 (5/5) 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: class 自我完備按鈕 extends Button { int 按鈕被按次數=0; public 自我完備按鈕(String 標記) { super(標記); enable. Events(AWTEvent. ACTION_EVENT_MASK); } public void process. Action. Event(Action. Event 事件) { super. process. Action. Event(事件); 按鈕被按次數++; set. Label("按鈕被按下"+按鈕被按次數+"次"); } } //類別: 自我完備按鈕 定義區塊結束 程式執行

傾聽者介面 Action. Listener Adjustment. Listener Component. Listener 介面中等待實作的方法 傾聽者登記方法 Action. Performed(Action. Event 事件) add.

傾聽者介面 Action. Listener Adjustment. Listener Component. Listener 介面中等待實作的方法 傾聽者登記方法 Action. Performed(Action. Event 事件) add. Action. Listener() Adjstment. Value. Changed(Adjustment. Event 事件) add. Adjustment. Listener() component. Hidden(component. Event 事件) component. Moved(component. Event 事件) component. Resized(component. Event 事件) component. Show(component. Event 事件) add. Component. Listener() Container. Listener component. Added(Container. Event 事件) component. Removed(Container. Event 事件) add. Container. Listener() Focus. Listener focus. Gained(Focus. Event 事件) focus. Lost(Focus. Event 事件) add. Focus. Listener() Item. Listener Key. Listener item. State. Changed(item. Event 事件) key. Pressed(Key. Event 事件) key. Released(Key. Event 事件) key. Typed(Key. Event 事件) additem. Listener() add. Key. Listener()

Mouse. Listener Mouse. Motion. Listen er Text. Listener Window. Listener mouse. Clicked(Mouse. Event 事件)

Mouse. Listener Mouse. Motion. Listen er Text. Listener Window. Listener mouse. Clicked(Mouse. Event 事件) mouse. Enetered(Mouse. Event 事件) mouse. Exited(Mouse. Event 事件) mouse. Pressed(Mouse. Event 事件) mouse. Released(Mouse. Event 事件) mouse. Dragged(Mouse. Event 事件) mouse. Moved(Mouse. Event 事件) text. Value. Changed(Text. Event 事件) window. Activated(Window. Event 事件) window. Closing(Window. Event 事件) window. Deactivated(Window. Event 事件) window. Deiconified(Window. Event 事件) window. Iconified(Window. Event 事件) window. Opened(Window. Event 事件) add. Mouse. Listener() add. Mouse. Motion. Listene r() add. Text. Listener() add. Window. Listener()

委託傾聽者處理事件 (5/11) n 我們利用以下的範例來說明如何達成委託傾聽者 處理事件: 1: 2: 3: Applet類別 4: Button類別 5: 6: //檔名:

委託傾聽者處理事件 (5/11) n 我們利用以下的範例來說明如何達成委託傾聽者 處理事件: 1: 2: 3: Applet類別 4: Button類別 5: 6: //檔名: 事件委託按鈕測試. java //說明: 測試「事件委託」處理模式 import java. applet. Applet; import java. awt. Button; //引 入 //引入 import java. awt. event. Action. Event; import java. awt. event. Action. Listener;

委託傾聽者處理事件 (6/11) 7: public class事 件 委 託 按 鈕 測 試 extends Applet

委託傾聽者處理事件 (6/11) 7: public class事 件 委 託 按 鈕 測 試 extends Applet { 8: Button 按鈕 = new Button("請趕快按我 !!"); 9: public void init() { 10: add(按鈕); 11: Action. Listener 傾聽者物件= new 傾聽者 (); 12: 按鈕. add. Action. Listener(傾聽者物件); 13: //上 2行 可 以 使 用 按鈕. add. Action. Listener(new 傾

委託傾聽者處理事件 (7/11) 16: 17: 18: 事件) { 19: 20: 21: 22: 按次數+“次 "); 23:

委託傾聽者處理事件 (7/11) 16: 17: 18: 事件) { 19: 20: 21: 22: 按次數+“次 "); 23: class 傾聽者 implements Action. Listener { int 按鈕被按次數=0; public void action. Performed (Action. Event 按鈕被按次數++; Object 物件=事件. get. Source(); Button 按鈕物件=(Button)物件; 按鈕物件. set. Label(“按鈕被按下”+按鈕被 } //方法: action. Performed() 定義區塊結束

委託傾聽者處理事件 (10/11) 1: 2: 3: 4: 5: 6: 7: 8: !!"); 9: 10: 11:

委託傾聽者處理事件 (10/11) 1: 2: 3: 4: 5: 6: 7: 8: !!"); 9: 10: 11: 12: //檔名: 自我傾聽按鈕測試. java //說明: 測試「自我傾聽」處理模式 import java. applet. Applet; //引入Applet類別 import java. awt. Button; //引入Button類別 import java. awt. event. Action. Event; import java. awt. event. Action. Listener; public class 自我傾聽按鈕測試 extends Applet { 自我傾聽按鈕 按鈕物件 = new 自我傾聽按鈕("請趕快按我 public void init() { add(按鈕物件); 按鈕物件. add. Action. Listener(按鈕物件); }

委託傾聽者處理事件 (11/11) 14: 15: class 自 我 傾 聽 按 鈕 extends Button implements

委託傾聽者處理事件 (11/11) 14: 15: class 自 我 傾 聽 按 鈕 extends Button implements Action. Listener { 16: int 按鈕被按次數=0; 17: 自我傾聽按鈕(String 標記) { 18: super(標記); 19: } 20: public void action. Performed (Action. Event 事件) { 21: 按鈕被按次數++; 22: set. Label("按鈕被按下"+按鈕被按次數+"次

轉接類別事件處理 (1/12) n n 由表 10 -3中可知,大部分的傾聽者介面都具有多個等待 實作的方法。 例如,Window. Listener介面包含window. Activated( Window. Event 事件)

轉接類別事件處理 (1/12) n n 由表 10 -3中可知,大部分的傾聽者介面都具有多個等待 實作的方法。 例如,Window. Listener介面包含window. Activated( Window. Event 事件) 、window. Closing( Window. Event 事件) 、 window. Deactivated( Window. Event 事件) 、 window. Deiconified( Window. Event 事件) 、 window. Iconified( Window. Event 事件) 及 window. Opened( Window. Event 事件)等7個等待實作的 方法。

轉接類別事件處理 (3/12) n 下表中列出所有的轉接類別及其對應的傾聽者介 面: 轉接類別 對應的傾聽者介面 Component. Adapter Component. Listener Container. Adapter Container.

轉接類別事件處理 (3/12) n 下表中列出所有的轉接類別及其對應的傾聽者介 面: 轉接類別 對應的傾聽者介面 Component. Adapter Component. Listener Container. Adapter Container. Listener Focus. Adapter Focus. Listener Key. Adapter Key. Listener Mouse. Adapter Mouse. Listener Mouse. Motion. Adapter Mouse. Motion. Listener Window. Adapter Windows. Listener

轉接類別事件處理 (6/12) 17: 18: 事件) { 19: 20: 21: 22: class 傾聽者 implements Window.

轉接類別事件處理 (6/12) 17: 18: 事件) { 19: 20: 21: 22: class 傾聽者 implements Window. Listener { public void window. Closing (Window. Event Object 物件=事件. get. Source(); Frame 窗框物件=(Frame)物件; 窗框物件. dispose(); } //方法: window. Closing定義區塊結束

轉接類別事件處理 (7/12) 23: 空的」方 法定義 24: 空的」方法 定義 25: //「空的」 方法定義 26: //「空的」 方法定義

轉接類別事件處理 (7/12) 23: 空的」方 法定義 24: 空的」方法 定義 25: //「空的」 方法定義 26: //「空的」 方法定義 27: //「空的」 public void window. Activated(Window. Event 事件) { } //「 public void window. Closed(Window. Event 事件) { } //「 public void window. Deactivated(Window. Event 事件) { } public void window. Deiconified(Window. Event 事件) { } public void window. Iconified(Window. Event 事件) { }

轉接類別事件處理 (8/12) n n 上列使用傾聽者介面Window. Listener的範例中,傾聽者 類別於宣告實作傾聽者介面Window. Listener之後,需要 將Window. Listener介面的7個等待實作方法一一加以定義 這 7個等待實作方法包含 window. Activated(Window.

轉接類別事件處理 (8/12) n n 上列使用傾聽者介面Window. Listener的範例中,傾聽者 類別於宣告實作傾聽者介面Window. Listener之後,需要 將Window. Listener介面的7個等待實作方法一一加以定義 這 7個等待實作方法包含 window. Activated(Window. Event 事件) 、 window. Closing(Window. Event 事件) 、 window. Deactivated(Window. Event 事件) 、 window. Deiconified(Window. Event 事件) 、 windowlconified(Window. Event 事件) 及 window. Opened(Window. Event 事件)。

轉接類別事件處理 (10/12) 1: //檔名: 窗框關閉使用轉接類別測試. java 2: //說明: 測試轉接類別用法 3: import java. applet. Applet;

轉接類別事件處理 (10/12) 1: //檔名: 窗框關閉使用轉接類別測試. java 2: //說明: 測試轉接類別用法 3: import java. applet. Applet; //引入 Applet類別 4: import java. awt. Frame; //引入 Button類別 5: import java. awt. event. Window. Event; 6: import java. awt. event. Window. Adapter;

轉接類別事件處理 (12/12) 16: 17: 事件) { 18: 19: 20: 21: 22: class 傾聽者 extends

轉接類別事件處理 (12/12) 16: 17: 事件) { 18: 19: 20: 21: 22: class 傾聽者 extends Window. Adapter { public void window. Closing (Window. Event Object 物件=事件. get. Source(); Frame 窗框物件=(Frame)物件; 窗框物件. dispose(); } //方法: window. Closing定義區塊結束 } //類別: 傾聽者 定義區塊結束 程式執行結果

內層類別事件處理 (2/7) 1: //檔名: 窗框關閉使用具名內層類別測試. java 2: //說明: 測試具名內層類別用法 3: import java. applet. Applet;

內層類別事件處理 (2/7) 1: //檔名: 窗框關閉使用具名內層類別測試. java 2: //說明: 測試具名內層類別用法 3: import java. applet. Applet; //引 入 Applet類別 4: import java. awt. Frame; //引 入 Button類別 5: import java. awt. event. Window. Event; 6: import java. awt. event. Window. Adapter; 7: public class 窗框關閉使用具名內層類別測試 extends Applet {

內層類別事件處理 (3/7) 10: 窗框 = new Frame("測試窗框"); 11: 窗框. set. Size(200, 200); 12: 窗框.

內層類別事件處理 (3/7) 10: 窗框 = new Frame("測試窗框"); 11: 窗框. set. Size(200, 200); 12: 窗框. set. Visible(true); 13: 窗框. add. Window. Listener(new 窗框轉接內 層類別() ); 14: } //方法: init() 定義區塊結束 15: class 窗 框 轉 接 內 層 類 別 extends Window. Adapter { 16: public void window. Closing (Window. Event 事件) { 17: 窗框. dispose();

內層類別事件處理 (5/7) n 以下為使用匿名內層類別的範例程式: 1: //檔名: 窗框關閉使用匿名內層類別測試. java 2: //說明: 測試匿名內層類別用法 3: import java.

內層類別事件處理 (5/7) n 以下為使用匿名內層類別的範例程式: 1: //檔名: 窗框關閉使用匿名內層類別測試. java 2: //說明: 測試匿名內層類別用法 3: import java. applet. Applet; //引 入 Applet類別 4: import java. awt. Frame; //引入 Button類別 5: import java. awt. event. Window. Event; 6: import java. awt. event. Window. Adapter; 7: public class 窗框關閉使用匿名內層類別測試 extends

內層類別事件處理 (6/7) 10: 11: 12: 13: 14: 15: 事件) { 16: 17: 18: 區塊結束

內層類別事件處理 (6/7) 10: 11: 12: 13: 14: 15: 事件) { 16: 17: 18: 區塊結束 19: 20: 窗框 = new Frame("測試窗框"); 窗框. set. Size(200, 200); 窗框. set. Visible(true); 窗框. add. Window. Listener( new Window. Adapter() { public void window. Closing (Window. Event 窗框. dispose(); } //方法: window. Closing定義區塊結束 } //內層類別: Window. Adapter()建構方法 定義 ); //敘述: add. Window. Listener 結束 } //方法: init() 定義區塊結束

Q&A

Q&A