Document 9652608

Download Report

Transcript Document 9652608

Matakuliah : M0864/Programming I
Tahun
: 2009
Event-Driven Programming
Pertemuan 5
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa akan
mampu:
– menerapkan penggunaan event-driven dan
handling event pada pemograman Java.
Bina Nusantara
Outline Materi
•
•
•
•
•
Introduction
Event
Handling Event
Mouse Event
Key Event
Bina Nusantara
Introduction
• Procedural programming dijalankan oleh procedural programming
• Dalam event-driven programming, kode dijalankan oleh event-event
yang telah diaktifasi.
• Contoh : sebuah tombol dalam frame yang diklik akan menampilkan
pesan di console ketika tombol diklik.
Event
• Sebuah Event dapat didefinisikan sebagai sebuah tipe
signal untuk program jika terjadi sesuatu.
• Event digeneralisasi oleh external user, seperti
pergerakan mouse, ketika mouse diklik, penekanan
tombol, atau dari operating system seperti sebuah timer.
• Merupakan bagian dari package AWT
Event
• Event Classes
EventObject
AWTEvent
ListSelectionEvent
ActionEvent
ContainerEvent
AdjustmentEvent
FocusEvent
ComponentEvent
InputEvent
ItemEvent
PaintEvent
TextEvent
WindowEvent
MouseEvent
KeyEvent
Event
• Event Information
– Sebuah event object terdiri dari properti-properti yang
berhubungan dengan kejadian.
– Kita dapat mengidentifikasi sumber objek dari event dengan
menggunakan getSource() yang merupakan instance method
pada EventObject class.
– Tipe-tipe event yang berhubungan dengan EventObject seperti
button Actions, windows events, component events, mouse
movements, dan keystrokes.
Event
User Action
Source
Object
Event Type
Generated
Click a button
JButton
ActionEvent
Click a check box
JCheckBox
ItemEvent, ActionEvent
Click a radio button
JRadioButton
ItemEvent, ActionEvent
Press return on a text field
JTextField
ActionEvent
Select a new item
JComboBox
ItemEvent, ActionEvent
Window opened, closed, etc.
Window
WindowEvent
Mouse pressed, released, etc.
Component
MouseEvent
Key released, pressed, etc.
Component
KeyEvent
Handling Event
• The Delegation Model
Trigger an event
source: SourceClass
User
Action
XListener
+addXListener(listener: XListener)
(a) A generic source component
with a generic listener
+handler(event: XEvent)
Register by invoking
source.addXListener(listener);
listener: ListenerClass
source: JButton
ActionListener
+addActionListener(listener: ActionListener)
+actionPerformed(event: ActionEvent)
(b) A JButton source component
with an ActionListener
Register by invoking
source.addActionListener(listener);
listener: CustomListenerClass
Handling Event
Event Class
Listener Interface
Listener Methods (Handlers)
ActionEvent
ItemEvent
WindowEvent
ActionListener
ItemListener
WindowListener
ContainerEvent
ContainerListener
MouseEvent
MouseListener
KeyEvent
KeyListener
actionPerformed(ActionEvent)
itemStateChanged(ItemEvent)
windowClosing(WindowEvent)
windowOpened(WindowEvent)
windowIconified(WindowEvent)
windowDeiconified(WindowEvent)
windowClosed(WindowEvent)
windowActivated(WindowEvent)
windowDeactivated(WindowEvent)
componentAdded(ContainerEvent)
componentRemoved(ContainerEvent)
mousePressed(MouseEvent)
mouseReleased(MouseEvent)
mouseClicked(MouseEvent)
mouseExited(MouseEvent)
mouseEntered(MouseEvent)
keyPressed(KeyEvent)
keyReleased(KeyEvent)
keyTypeed(KeyEvent)
Handling Event
•
Sample Code :
•
Output :
Handling Event
Jika Button “OK” di klik maka muncul
Jika Button “CanCel” di klik maka muncul
Mouse Event
•
Sebuah mouse event dapat terjadi ketika mouse ditekan, dilepas, diklik,
digeser, atau di-drag pada sebuah komponen.
•
Objek Mouse-Event akan mengambil event-event seperti jumlah klik yang
berhubungan dengannya atau lokasi (X dan Y) dari mouse.
•
Ada 2 listener interfaces :
– MouseListener
• Tekan, lepas, masuk, keluar atau mengklik mouse
– MouseMotionListener
• Drag dan pergerakan mouse.
Mouse Event
•
Handling Mouse Event
java.awt.event.MouseListener
+mousePressed(e: MouseEvent): void
Invoked when the mouse button has been pressed on the
source component.
+mouseReleased(e: MouseEvent): void
Invoked when the mouse button has been released on the
source component.
+mouseClicked(e: MouseEvent): void
Invoked when the mouse button has been clicked (pressed and
released) on the source component.
+mouseEntered(e: MouseEvent): void
Invoked when the mouse enters the source component.
+mouseExited(e: MouseEvent): void
Invoked when the mouse exits the source component.
java.awt.event.MouseMotionListener
+mouseDragged(e: MouseEvent): void
Invoked when a mouse button is moved with a button pressed.
+mouseMoved(e: MouseEvent): void
Invoked when a mouse button is moved without a button
pressed.
Key Event
• Inputan dari keyboard.
• Sebuah key event dapat terjadi bila sebuah tombol keyboard
ditekan, dilepas atau diketik pada sebuah komponen.
• Handler pada interface KeyListener :
– keyPressed(KeyEvent e)
• Dipanggil ketika sebuah tombol keybord ditekan
– keyReleased(KeyEvent e)
• Dipanggil ketika sebuah tombol keybord dilepas
– keyTyped(KeyEvent e)
• Dipanggil ketika sebuah tombol keybord ditekan dan kemudian dilepas
Key Event
• Methods:
getKeyChar()
method
getKeyCode()
method
• Keys:
Home
VK_HOME
End
VK_END
Page Up
VK_PGUP
Page Down
VK_PGDN
Up-arrow key
VK_UP
dll
Key Event
java.awt.event.InputEvent
java.awt.event.KeyEvent
+getKeyChar(): char
Returns the character associated with the key in this event.
+getKeyCode(): int
Returns the integer keyCode associated with the key in this event.
Key Event
• Output:
Key Event
Ketika ditekan tanda panah kanan
Referensi
•
•
Introduction to Java. 7ed. 2009. Liang. Chapter 15.
Java and Event Handling
 http://www.javaworld.com/javaworld/jw-08-1996/jw-08-event.html
•
Event-Driven Programming in Java
 http://www.cs.sjsu.edu/faculty/beeson/courses/cs160/LectureNot
es/12-EventDrivenProgramming.html
Bina Nusantara