งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Object-Oriented Programming wiht Java Burapha University, 2001 Graphical User Interface in Java Java AWT Events Event Delegation Model AWT Event Handling.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Object-Oriented Programming wiht Java Burapha University, 2001 Graphical User Interface in Java Java AWT Events Event Delegation Model AWT Event Handling."— ใบสำเนางานนำเสนอ:

1 Object-Oriented Programming wiht Java Burapha University, 2001 Graphical User Interface in Java Java AWT Events Event Delegation Model AWT Event Handling Week #10 Jarungjit Parnjai

2 Object-Oriented Programming wiht Java Burapha University, 2001 Lecture Outline q Event q Event Source, Event Object, Event Listener q Delegation Event Model q Java AWT Event q AWT Event Handling q Interface & Event Listeners q Example of a Simple Counter

3 Object-Oriented Programming wiht Java Burapha University, 2001 Events  Events เป็นวัตถุ (Objects) แทนเหตุการณ์ ที่เกิดจากการที่การกระทำใดๆ กับวัตถุ หนึ่ง  ตัวอย่าง * button clicked เป็นเหตุการณ์ที่ button ถูกคลิก * mouse dragged เป็นเหตุการณ์ที่ mouse ถูกลาก * Enter key pressed เป็นเหตุการณ์ที่ Enter key ถูกกด  Component จะสร้าง Events (fire Event) เมื่อ เกิดเหตุการณ์หนึ่ง เหตุการณ์ใดขึ้นกับ Component นั้น

4 Object-Oriented Programming wiht Java Burapha University, 2001 Events  วัตถุที่เป็น Event บอก information ต่อไปนี้ * สิ่งใดทำให้เกิด event?: Source * event ที่เกิดขึ้นเป็นประเภทใด ?: type * event ที่เกิดขึ้นถูกดักไว้หรือไม่ ? โดย ใคร ? :Handler/Listener

5 Object-Oriented Programming wiht Java Burapha University, 2001 Event Sources  Low level * Keyboard * Mouse Event  Conceptual * Window * Component * Selection

6 Object-Oriented Programming wiht Java Burapha University, 2001 Event Types  Keyboard Event : * key pressed * key released * key typed  Mouse Event : * mouse moved * button pressed/released/clicked * mouse dragged * enter/leave/cross

7 Object-Oriented Programming wiht Java Burapha University, 2001 Event Types  Window Event : * Activated, Deactivated, Resized/Iconified, Opened, Closed vs. Closing  Component Event : * Displayed, Moved, Resized, Focus change, Container specific events  Selection Event : * Generated by “selectable” components : trees, tables, lists, menu buttons * What is being selected / deselected

8 Object-Oriented Programming wiht Java Burapha University, 2001 Event Handlers/Listeners  Event handler/Event Listener * Separate Object * same class as Event Source Container *..

9 Object-Oriented Programming wiht Java Burapha University, 2001 Events * Event sources? * Event type? * Event Listeners?

10 Object-Oriented Programming wiht Java Burapha University, 2001 Event-driven Programming  Procedural Programming การเขียนโปรแกรมเพื่อจัดการ ปัญหาแบบมีโครงสร้าง และมีลำดับ ที่ได้กำหนดไว้ล่วงหน้าแล้ว  Event-driven Programming การเขียนโปรแกรมเพื่อจัดการ ปัญหา โดยลำดับการทำงานของ Code ถูกเรียกใช้งานหรือไม่ ขึ้นอยู่ กับการกระทำหรือเหตุการณ์ที่ เกิดขึ้นจากการกระทำ (Event)

11 Object-Oriented Programming wiht Java Burapha University, 2001 AWT Events  Component Events : ความหมายเหมือนกันทุก กรณี * Components - ComponentEvent, FocusEvent, KeyEvent, MouseEvent, PaintEvent * Containers - ContainerEvent * Windows - WindowEvent  Semantic Events : event จะมีความหมาย แตกต่างกันไปขึ้นกับวัตถุที่สร้าง (fire) event นั้นๆ * ActionEvent, ItemEvent, TextEvent, AdjustmentEvent  Package ชื่อ java.awt.AWTEvent

12 Object-Oriented Programming wiht Java Burapha University, 2001 AWT Event Class Hierarchy EventObject AWTEvent ActionEvent ComponentEvent AdjustmentEvent TextEvent ItemEvent ContainerEvent MouseEvent keyEvent FocusEvent InputEvent PaintEvent WindowEvent

13 Object-Oriented Programming wiht Java Burapha University, 2001 AWT Events Component Event Generated Generate When ButtonActionEvent Clicked Selected or deselected Moved, resized, hidden or shown Checkbox CheckboxMenuItem Gained or loses fccus Pressed or released ComponentEventComponent Double Clicked ItemEvent ContainerContainerEventAdded or removed ItemEvent Selected or deselected Choice FocusEvent KeyEvent ListActionEvent ItemEventSelected or deselected SelectedActionEventMenuItem MovedAdjustmentEventScrollbar ChangedTextEventTextComponent Completed editingTextEventTextField Opened, closed, iconified, deiconified, etc.WindowEventWindow

14 Object-Oriented Programming wiht Java Burapha University, 2001 Events Delegation Model User Action User Action Source Object Source Object Triggering an event Target/Listener Object Target/Listener Object Event Object Event Object Registering for an event Creating an event Notify Event Listener Handle event Event Handler

15 Object-Oriented Programming wiht Java Burapha University, 2001 Delegation Event Model  Delegation Event Model (JDK 1.1 และสูงกว่า ) * Event Source - เป็นวัตถุ ยกตัวอย่างเช่น ปุ่ม หรือ scrollbar ที่สร้าง Event โดย ที่ Event Source มี เมทธอดที่ให้วัตถุใดๆ สามารถลงทะเบียน (register) เป็น listener เพื่อให้วัตถุดังกล่าวได้รับ แจ้ง (notify) จาก Event Source เมื่อ มี Event เกิดขึ้น * Event Listener - เ ป็ น วัตถุ ที่ ได้รับแจ้ง (notify) จาก Event Source เมื่อมี Event เกิดขึ้น * Event object – เป็นวัตถุที่เก็บข้อมูลเกี่ยวกับ เหตุการณ์ที่เกิดขึ้นบน Event Source และจะถุ กส่งผ่านไปยัง Event Listener

16 Object-Oriented Programming wiht Java Burapha University, 2001  Delegation Event Model * Listener ต้อง implements “Listener” Interfaces ซึ่ง เป็น Interfaces ที่สนับสนุนการดักฟัง event * Listener ทำการ Register กับ Event Source เพื่อ ดักฟัง event * เมื่อเกิด Event ขึ้นบน Event Source แล้ว Event Source ต้อง notify ทุกๆ Listeners ที่ดักฟัง * เมื่อเกิด Listener ได้รับ notify จาก Event Source ที่แล้วจะจัดการกับ Event โดยใช้ Event Handler Delegation Event Model

17 Object-Oriented Programming wiht Java Burapha University, 2001  แต่ละ Event class มี “Listener” interface ที่ เกี่ยวข้องกับ Event class นั้น  แต่ละ interface จะมี method จำนวน 1 หรือ มากกว่า 1 method ที่สอดคล้องกับประเภท ของ event Delegation Event Model

18 Object-Oriented Programming wiht Java Burapha University, 2001 Events Handlers  แต่ละ Event จะมี Interface และ Listener Method ที่ เป็น callback สำหรับจัดการ Event Event Class Listener Interface Listener Methods ActionEventActionListener ItemEventItemListener actionPerformed(ActionEvent) itemSateChanged(ItemEvent) WindowEventWindowListener windowClosing(WindowEvent) windowOpened(WindowEvent) windowIconified(Wi ndowEvent) windowDeiconfiied(WindowEvent) windowClosed(WindowEvent) windowActivated(WindowEvent) windowDeactivated(WindowEvent) ContainerEventContainerListener componentAdded(ContainerEvent) componentRemoved(ContainerEvent) FocusEventFocusListener focusGained(FocusrEvent) focusLost(FocusrEvent)

19 Object-Oriented Programming wiht Java Burapha University, 2001 Events Handlers Event Class Listener Interface Listener Methods MouseEventMouseListener mouseClicked(MouseEvent) mouseEntered(MouseEvent) mousePressed(MouseEvent) mouseReleased(MouseEvent) MouseDragged(MouseEvent) mouseMoved(MouseEvent) TextEvent TextListenertextValueChanged(TextEvent) componentRemoved(ContainerEvent) ComponentEventComponentListener compoenentHidden(ComponentEvent) MouseMotionListener AdjustmentEventAdjustmentListener adjustmentValueChanged(AdjustmentrEvent) compoenentMoved(ComponentEvent) compoenentResized(ComponentEvent) compoenentShown(ComponentEvent)

20 Object-Oriented Programming wiht Java Burapha University, 2001 Example of Listener Interface public interface MouseListener { public void mouseMoved(MouseEvent e); public void mouseReleased(MouseEvent e); public void mousePressed(MouseEvent e); public void mouseEntered(MouseEvent e); public void mouseExited(MouseEvent e); } public interface WindowListener { public void windowClosed(WindowEvent e); public void windowIconified(WindowEvent e); public void windowDeiconified (WindowEvent e); public void windowActivate(WindowEvent e); public void windowDeactivated (WindowEvent e); public void windowClosing(WindowEvent e); }

21 Object-Oriented Programming wiht Java Burapha University, 2001 Example of Listener Interface public interface ActionListener { public void actionPerformed (ActionEvent e); } public interface ItemListener { public void itemStateChanged (ItemEvent e); } public interface ComponentListener { public void componentHidden(CompoentEvent e); public void componentMoved(CompoentEvent e); public void componentResized(CompoentEvent e); public void componentShown(CompoentEvent e); }

22 Object-Oriented Programming wiht Java Burapha University, 2001 Registering Event Listener  กำหนดคลาส ที่ implement “Listener” interface  ในคลาสดังกล่าว เพิ่มเติมส่วน implementation ใน method ที่ Interface กำหนดไว้ ให้ implement  ใน Event Source เพิ่มคลาสดังกล่าวเพื่อเป็น Listener ของ Event Source นั้นด้วยการ Register เพื่อดักฟัง event  Listeners ต้อง register กับ Event Source public void addXXXListener(XXXListener)

23 Object-Oriented Programming wiht Java Burapha University, 2001 Registering Listeners  การ Register เพื่อดักฟัง event  Listeners ต้อง register กับ Event Source public void addXXXListener(XXXListener) เช่น addActionListener, addItemListener เป็น ต้น  สามารถมีหลายๆ Listeners (Multiple listeners) register เพื่อดักฟัง event เดียวกันจาก Event Source เดียวกันได้ * event หนึ่งอาจก่อให้เกิด (trigger) การ ตอบสนองหลายรูปแบบ * โดยที่ event จะต้องถูก Broadcast ไปให้กับ ทุก Listener ที่ได้ register ไว้

24 Object-Oriented Programming wiht Java Burapha University, 2001 Multiple Listeners User Action User Action Source Object Source Object Triggering an event Listener Object Listener Object Event Object Event Object Registering for an event Creating an event Notify all Event Listeners Handle event Event Handler Listener Object Listener Object Registering for an event Handle event Event Handler

25 Object-Oriented Programming wiht Java Burapha University, 2001 MyFrame import java.awt.*; import java.awt.event.*; public class MyFrame extends Frame implements WindowListener { public static void main(String[] args) { Frame f = new MyFrame("Test Frame"); f.setSize(200,300); f.setVisible(true); } public MyFrame(String title) { super(title); addWindowListener(this); } public void windowClosed(WindowEvent e) {} public void windowIconified(WindowEvent e) {} public void windowDeiconified(WindowEvent e) {} public void windowActivated(WindowEvent e) {} public void windowDeactivated(WindowEvent e) {} public void windowOpened(WindowEvent e) {} public void windowClosing(WindowEvent e) { System.exit(0); } }

26 Object-Oriented Programming wiht Java Burapha University, 2001 TestMouseEvent import java.awt.*; import java.awt.event.*; public class TestMouseEvent extends MyFrame implements MouseListener { private int x, y = 0; public static void main(String[] args) { Frame f = new TestMouseEvent("Test MouseEvent"); f.setSize(200,300); f.setVisible(true); } public TestMouseEvent(String title) { super(title); addMouseListener(this); } public void mousePressed(MouseEvent e) { x = e.getX(); y = e.getY(); repaint(); } public void mouseClicked(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} public void paint(Graphics g) { g.fillRect(x-5, y-5, 10, 10); } }

27 Object-Oriented Programming wiht Java Burapha University, 2001 TestActionEvent import java.awt.*; import java.awt.event.*; public class TestActionEvent extends MyFrame implements ActionListener { public static void main(String[] args) { Frame f = new TestActionEvent("Test MouseEvent"); f.pack(); f.setVisible(true); } public TestActionEvent(String title) { super(title); this.setLayout(new FlowLayout()); Button b = new Button("close"); b.addActionListener(this); this.add(b); } public void actionPerformed(ActionEvent e) { String actionCmd = e.getActionCommand(); if (e.getSource() instanceof Button) if (actionCmd.equals("close")) System.exit(0); }

28 Object-Oriented Programming wiht Java Burapha University, 2001 TestPanel : public class TestPanel extends MyFrame implements ActionListener { private TextField tfNum; private Button b[] = new Button[6]; public TestPanel(String title) { super(title); Panel p = new Panel(); p.setLayout(new GridLayout(3,2)); for (int i=0; i<6; i++) { p.add(b[i] = new Button(" "+i+" ")); b[i].addActionListener(this); } tfNum = new TextField(); this.add(p, BorderLayout.CENTER); this.add(tfNum, BorderLayout.SOUTH); } public void actionPerformed(ActionEvent e) { String actionCmd = e.getActionCommand(); if (e.getSource() instanceof Button) tfNum.setText(actionCmd); }

29 Object-Oriented Programming wiht Java Burapha University, 2001 TwoInOneListeners import java.awt.*; import java.awt.event.*; public class TwoInOneListeners implements MouseMotionListener, MouseListener { private Frame f; private TextField tf; public static void main(String[] args) { TwoInOneListeners l = new TwoInOneListeners(); l.go(); } public void go() { f = new Frame("TwoInOne Listeners"); f.add(new Label("Click and drag the mouse"), BorderLayout.NORTH); tf = new TextField(30); f.add(tf, BorderLayout.SOUTH); f.addMouseMotionListener(this); f.addMouseListener(this); f.setSize(200,200); f.setVisible(true); }

30 Object-Oriented Programming wiht Java Burapha University, 2001 // These are MouseMotionListener events public void mouseDragged(MouseEvent e) { String s = "Mouse dragging: X = "+e.getX()+" Y = "+e.getY(); tf.setText(s); } public void mouseMoved(MouseEvent e) {} // These are MouseListener events public void mousePressed(MouseEvent e) {} public void mouseClicked(MouseEvent e) {} public void mouseEntered(MouseEvent e) { tf.setText("The mouse entered"); } public void mouseExited(MouseEvent e) { tf.setText("The mouse has left the building"); } public void mouseReleased(MouseEvent e) {} }

31 Object-Oriented Programming wiht Java Burapha University, 2001 TwoListeners import java.awt.*; import java.awt.event.*; public class TwoListeners { private Frame f; private TextField tf; class MouseHandler implements MouseListener { public void mousePressed(MouseEvent e) {} public void mouseClicked(MouseEvent e) {} public void mouseEntered(MouseEvent e) { tf.setText("The mouse entered"); } public void mouseExited(MouseEvent e) { tf.setText("The mouse has left the building"); } public void mouseReleased(MouseEvent e) {} }

32 Object-Oriented Programming wiht Java Burapha University, 2001 class MouseMotionHandler implements MouseMotionListener { public void mouseDragged(MouseEvent e) { String s = "Mouse dragging: X = "+e.getX()+" Y = "+e.getY(); tf.setText(s); } public void mouseMoved(MouseEvent e) {} } public static void main(String[] args) { TwoListeners l = new TwoListeners(); l.go(); } public void go() { f = new Frame("Two Listeners"); f.add(new Label("Click and drag the mouse"), BorderLayout.NORTH); tf = new TextField(30); f.add(tf, BorderLayout.SOUTH); f.addMouseMotionListener(new MouseMotionHandler()); f.addMouseListener(new MouseHandler()); f.setSize(200,200); f.setVisible(true); }

33 Object-Oriented Programming wiht Java Burapha University, 2001 Tips on Event Listeners  Event Listeners เป็น Interfaces ทุกๆ methods จะต้องถูก implement โดยไม่ สนใจว่าจะมีการตอบสนองใน routine ที่ implement หรือไม่  กรณี Multiple Listeners ไม่รับประกันว่า listener ใดๆ จะได้รับการ notify เป็น Listener แรก  กรณี event เกี่ยวกับการเลือกประเภท ( ItemEvent ) Event Source จะสร้าง 2 events ต่อ 1 user action (selection และ deselection)  มี method ในคลาส Event ที่เป็น descriptive method ActionEvent - getActionCommand()

34 Object-Oriented Programming wiht Java Burapha University, 2001 A Simple Counter Example

35 Object-Oriented Programming wiht Java Burapha University, 2001 presentation layer ควบคุมสิ่งที่จะปรากฏแก่ผู้ใช้ เป็น interface application layer ทำหน้าที่การทำงานหลักของ application translation layer ทำการ implements ส่วนของ interface BasicCounter CounterHandler CounterInterface application layer translation layer presentation layer ActionListener Frame GUI for a Simple Counter

36 Object-Oriented Programming wiht Java Burapha University, 2001 Event Handling in Java state setting actions called 4 user interacts with the interface theInterface: CounterInterface theHandler: CounterHandler theCounter: BasicCounter event queue 1 Java generates events 2 Java dispatches events to the ActionListner 3 state inquiry actions called 5 interface reflects changes 6

37 Object-Oriented Programming wiht Java Burapha University, 2001 Application Layer - BasicCounter BasicCounter - counted: int - max: int - min: int + count() : void + unCount() : void + reset() : void + maxmumIs() : int + minimumIs() : int public class BasicCounter { private int counted; private int max; private int min; public BasicCounter() { counted = 0; max = 10; min = 0; } public BasicCounter(int initCnt, int max, int min){ counted = initCnt; this.max = max; this.min = min; } public void unCount() { counted--; } public void count() { counted++; } public void reset() { counted = 0; } public int numberCountedIs(){ return counted; } public int maximumIs() { return max; } public int minimumIs() { return min; } }

38 Object-Oriented Programming wiht Java Burapha University, 2001 Presentation Layer - CounterInterface visual design Current Value nnnn +0- display area control area increment button decrement button reset button

39 Object-Oriented Programming wiht Java Burapha University, 2001 Java AWT Classes ใช้คลาสใน Java AWT เพื่อสร้าง interface Java AWT hierarchy กำหนด collection ของ components ที่มี objects ที่สามารถสร้าง GUIs ได้ Component ContainerButtonLabel PanelWindow Frame

40 Object-Oriented Programming wiht Java Burapha University, 2001 Relationship between GUI Components Current Value nnnn +0- frame display panel control panel buttons labels

41 Object-Oriented Programming wiht Java Burapha University, 2001 Implmentation of CounterInterface CounterInterface - enterButton: Button - resetButton: Button - leaveButton: Button - countDisplay: Label + updateDisplay( ): void + setResetState( ): void + setCountState( ): void + setMinimalState( ): void + setMaximalState( ): void Frame import java.awt.*; public class CounterInterface extends Frame { private Button incButton; private Button resetButton; private Button decButton; private Label countDisplay; public CounterInterface(CounterHandler handler){ … } public void updateDisplay(int currentValue) { … … } public void setResetState() { … … } public void setCountState() { … … } public void setMinimalState() { … … } public void setMaximalState() { … … } }

42 Object-Oriented Programming wiht Java Burapha University, 2001 public CounterInterface(CounterHandler theHandler) { Panel displayPanel = new Panel(); Panel controlPanel = new Panel(); Label countLabel = new Label("Current Value "); countDisplay = new Label(); displayPanel.add(countLabel); displayPanel.add(countDisplay); incButton = new Button("+"); incButton.setActionCommand("inc"); incButton.addActionListener(theHandler); controlPanel.add(incButton); resetButton = new Button("0"); resetButton.setActionCommand("reset"); resetButton.addActionListener(theHandler); controlPanel.add(resetButton); decButton = new Button( "-"); decButton.setActionCommand("dec"); decButton.addActionListener(theHandler); controlPanel.add(decButton); add("North", displayPanel); add("South", controlPanel); setSize(200, 150); show(); } associate action with button associate action handler with action subclass of ActionListener variable declarations initialize display panel initialize control panel initialize frame - visual appearance - ways to interact with the system

43 Object-Oriented Programming wiht Java Burapha University, 2001 public void updateDisplays(int currentValue) { countDisplay.setText(" " + currentValue + " "); } public void setResetState(){ incButton.setEnabled(true); resetButton.setEnabled(false); decButton.setEnabled(false); } public void setCountingState(){ incButton.setEnabled(true); resetButton.setEnabled(true); decButton.setEnabled(true); } public void setMinimalState(){ incButton.setEnabled(true); resetButton.setEnabled(true); decButton.setEnabled(false); } public void setMaximalState(){ incButton.setEnabled(false); resetButton.setEnabled(true); decButton.setEnabled(true); } interface for CounterHandler to update the display setText is method defined in Label class setEnable is a method defined in Button class

44 Object-Oriented Programming wiht Java Burapha University, 2001 Translation Layer - CounterHandler model of dynamic behavior counting state reset state maximal state minimal state count not pre-max pre-max not pre-min pre-min count unCount reset

45 Object-Oriented Programming wiht Java Burapha University, 2001 Implementation of CounterHandler Class CounterHandler - theCounter: BasicCounter - theInterface: CounterInterface - RESET_STATE: int - COUNT_STATE: int - MINIMAL_STATE: int - MAXIMAL_STATE: int - curState: int + actionPerformed( ): void - isPreMinimal( ): boolean - isPreMaximal( ): boolean ActionListener import java.awt.*; import java.awt.event.*; public class CounterHandler implements ActionListener { private BasicCounter theCounter; private CounterInterface theInterface; private static final int INITIAL_STATE = 0; private static final int RESET_STATE = 1; private static final int COUNTING_STATE = 2; private static final int MINIMAL_STATE = 3; private static final int MAXIMAL_STATE = 4; private static int curState = INITIAL_STATE; public CounterHandler() { … … } public void actionPerformed(ActionEvent e) { … } private boolean isPreMinimal() { … … } private boolean isPreMaximal() { … … } }

46 Object-Oriented Programming wiht Java Burapha University, 2001 public CounterHandler( ) { theCounter = new BasicCounter( ); theInterface = new CounterInterface(this); theInterface.setResetState( ); curState = RESET_STATE; theInterface.updateDisplays(theCounter.numberCountedIs( )); } private boolean isPreMinimal( ) { return ( theCounter.numberCountedIs() - theCounter.minimumIs( )) == 1; } private boolean isPreMaximal( ) { return( theCounter.maximumIs( ) - theCounter.numberCountedIs( )) == 1; } used only inside the class definition initialization

47 Object-Oriented Programming wiht Java Burapha University, 2001 actionPerformed( ) Method public void actionPerformed(ActionEvent event) { String buttonPressed = event.getActionCommand(); if (buttonPressed.equals("inc")) { if (curState == RESET_STATE) { theInterface.setCountingState(); curState = COUNTING_STATE; } else if (curState == MINIMAL_STATE) { theInterface.setCountingState(); curState = COUNTING_STATE; } else if (isPreMaximal()) { theInterface.setMaximalState(); curState = MAXIMAL_STATE; } theCounter.count(); } else if (buttonPressed.equals( "dec")) { if (curState == MAXIMAL_STATE) { theInterface.setCountingState(); curState = COUNTING_STATE; } else if (this.isPreMinimal()) { theInterface.setMinimalState(); curState = MINIMAL_STATE; } theCounter.unCount(); } else { theInterface.setResetState(); curState = RESET_STATE; theCounter.reset(); } theInterface.updateDisplays(theCounter.numberCountedIs()); } “ + ” button pressed “ - ” button pressed “ 0 ” button pressed

48 Object-Oriented Programming wiht Java Burapha University, 2001 ClientDemo actions จะถูก performed เฉพาะเมื่อเกิด events public class ClientDemo { public static void main(String args[]) { CounterHandler handler = new CounterHandler(); System.out.print("it's waiting for action..."); }

49 Object-Oriented Programming wiht Java Burapha University, 2001 Summary q Event q Event Source, Event Object, Event Listener q Delegation Event Model q Java AWT Event q AWT Event Handling q Interface & Event Listeners q Example of a Simple Counter


ดาวน์โหลด ppt Object-Oriented Programming wiht Java Burapha University, 2001 Graphical User Interface in Java Java AWT Events Event Delegation Model AWT Event Handling.

งานนำเสนอที่คล้ายกัน


Ads by Google