Event Handling adalah suatu metode untuk menangani
sebuah event/aksi yang diberikan pengguna kepada suatu komponen GUI. Event
adalah suatu peristiwa yang dipicu oleh pengguna pada suatu komponen, misalnya
tombol ditekan. Dua paket yang biasa digunakan menangani kejadian adalah java.awt.event
dan java.swing.event. Event handling dalam menangani event terbagi
menjadi 2 macam yaitu Event Source, Event Listener atau Event Handler.
Ø
Event
Handling merupakan konsep penanganan suatu action yang terjadi. Jadi suatu
program akan berjalan saat sesuatu terjadi, misalnya saat tombol diklik, saat
combo box dipilih dan sebagainya. Java memiliki beberapa jenis Event Handling,
salah satunya adalah class ActionListener yang menangani aksi terhadap tombol.
1.
Event Source
Event Source adalah komponen yang mendapatkan suatu
event yang kemudian ditangkap oleh Event Listener. Event Source dapat dibedakan
dari penamaan komponen itu sendiri, misalnya tombolSimpan, tombolhapus, dan
lainnya. Dengan penamaan Event Source ini, Sebuah Event Listener akan dapat
mendeteksi dari mana Event Listener tersebut berasal. Jadi, Event source adalah suatu objek yang
membangkitkan event. Sebagai contoh, pada saat user melakukan klik terhadap
objek button, maka button dianggap sebagai event source.
Event source
harus mendaftarkan listener. Hal ini dilakukan agar listener dapat atau mampu
mendengarkan dan menproses event-event yang terjadi pada objek bersangkutan.
Untuk mendaftarkan listener ke dalam event source, kita harus menggunakan
bentuk umum sebagai berikut :
Public
void addTypeListener (TypeListener eventListener)
Dalam hal ini,
Type adalah event yang terjadi. Sebagai contoh, method yang digunakan untuk
mendaftarkan listener yang berkaitan dengan keyboard akan dinamakan dengan
addKeyListener(). Begitu pula untuk mendaftarkan listener yang berkaitan dengan
mouse, methodnya akan dinamakn dengan addMouseMotionListener().
Listener yang
sudah didaftarkan ke dalam event source dapat dipindahkan dengan menggunakan
bentuk umum berikut :
Public
void removeTypeListener(TypeListener
eventListener)
Type menunjukkan tipe
event yang terjadi pada objek yang berperan sebagai event source.
2.
Event
Listener
Event
listener adalah objek yang diberitahu pada saat suatu event terjadi pada event
source. Event listener diimplementasikan ke dalam bentuk interface. Dengan
demikian, untuk mengimplementasikan salah satu listener tertentu, perlu
mendefinisikan method yang terdapat pada interface bersangkutan. Sebagai
contoh, interface ActionListener mendeklarasikan sebuah method abstrak dengan
nama actionPerformed(). Jadi, apabila ingin membuat kelas yang
mengimplementasikan interface ActionListener, maka harus mendefinisikan method
actionPerformed() didalam kelas yang dibuat. Java telah menyediakan sekumpulan
interface yang digunakan sebagai event listener. Interface – interface tersebut
tersimpan dalam paket java.awt.event. dengan demikian, apabila ingin membuat
event handler pada program GUI yang dibuat maka perlu mengimport packages
tersebut.
Event Listener digunakan untuk menangkap event yang
terjadi pada komponen/Event Source. Dibawah ini disajikan beberapa listener
yang dapat digunakan dalam mendeteksi event.
Interface – interface pada event
Listener
Tabel
dibawah ini menunjukkan beberapa listener interface yang biasanya digunakan :
ActionListener
|
Mendefinisikan sebuah method untuk menangani
terjadinya event ActionEvent
void
actionPerformed(ActionEvent e)
|
AdjustmentListener
|
Mendefinisikan sebuah method untuk menangani
terjadinya event AdjustmentEvent
|
ComponentListener
|
Mendefinisikan empat mthod untuk menangani
terjadinya event Component
void
componentResize(ComponentEvent e)
void
componentMoved(ComponentEvent e)
void
componentShown(ComponentEvent e)
void
componentHidden(ComponentEvent e)
|
ContainerListener
|
Mendefinisikan dua method untuk menangani terjadinya
event ContainerEvent.
|
FocusListener
|
Mendefinisikan dua method untuk menangani terjadinya
event FocusEvent
void
focusGained (FocusEvent e)
void
focusLost (FocusEvent e)
|
ItemListener
|
Mendefinisikan sebuah method untuk menangani
terjadinya event ItemEvent
|
KeyListener
|
Mendefinisikan tiga method untuk menangani
terjadinya event KeyEvent
void
KeyPressed(KeyEvent e)
void
KeyReleased(KeyEvent e)
void
KeyTyped(KeyEvent e)
|
MouseListener
|
Mendefinisikan lima method untuk menangani
terjadinya event MouseEvent
void
mouseClicked (MouseEvent e)
void
mouseEntered (MouseEvent e)
void
mouseExited (MouseEvent e)
void
mousePressed (MouseEvent e)
void
mouseReleased (MouseEvent e)
|
MouseMotionListener
|
Mendefinikan dua method untuk menangani terjadinya
event mouseEvent (pada saat mouse di-drag atau dipindahkan)
void
mouseDragged(MouseEvent e)
void
mouseMoved(MouseEvent e)
|
TextListener
|
Mendefinisikan sebuah method untuk menangani
terjadinya event TextEvent
void
textChanged(TextEvent e)
|
WindowListener
|
Mendefinisikan tujuh method untuk menangani
terjadinya event WindowEvent
void
windowActived(WindowEvent e)
void
windowClosed(WindowEvent e)
void
windowClosing(WindowEvent e)
void windowDeactivated(WindowEvent
e)
void
windowDeiconified(WindowEvent e)
void
windowIconified(WindowEvent e)
void
windowOpened(WindowEvent e)
|
KELAS – KELAS EVENT
Kelas –
kelas event merepresentasikan tipe – tipe event yang dapat terjadi pada sebuah
event source. Semua kelas event di dalam java diturunkan dari kelas EventObject,
yang salah satu constructornya berbentuk seperti berikut :
EventObject(Object
src)
src adalah
object yang membangkitkan event ini. Kelas event object memiliki dua buah
method, yaitu getSource() dan toString(). Method getSource digunakan untuk
memperoleh object yang mengirimkan event. Adapun bentuk umum dari
method getSource() sebagai berikut :
Object
getSource()
Java
menyediakan beberapa tipe event yang diunggulkan oleh berbagai macam elemen
yang terdapat dalam user interface. Tipe – tipe event tersebut disimpan dalam
paket java.awt.event
Tabel berikut ini akan menunjukkan
beberapa event penting :
ActionEvent
|
Dibangkitkan pada saat objek button diklik, item
didalam list di-double click, maupun item menu dipilih.
|
AdjustmentEvent
|
Dibangkitkan pada saat objek scrollbar dimanipulasi
|
ComponentEvent
|
Dibangkitkan pada saat suatu komponen disembunyikan,
dipindahkan, diubah ukurannya, maupun diset ke keaadaan visible
|
ContainerEvent
|
Dibangkitkan pada suatu saat komponen
ditambahkan/dipindahkan ke/dari sebuah container
|
FocusEvent
|
Dibangkitkan pada saat suatu komponen memperoleh
kehilangan fokus keyboard
|
InputEvent
|
Kelas induk (berupa kelas abstrak) dari semua kelas
yang termasuk ke dalam event input.
|
ItemEvent
|
Dibangkitkan pada saat sebuah item dala list atau
checkbox di-click, juga terjadi pada saat item-nya di-buat, dan pada saat
item menu di-check maupun di uncheck
|
KeyEvent
|
Dibangkitkan pada saat input dilakkan melalui
keyboard.
|
MouseEvent
|
Dibangkitkan pada saat mouse didrag, dipindahkan, di
click, ditekan, maupun dilepas. Juga terjadi pada saat mouse memasuki atau
keluar dari suatu komponen.
|
TextEvent
|
Dibangkitkan pada saat text yang berada dalam
komponen text area atau text field diubah
|
WindowEvent
|
Dibangkitkan pada saat window atau form diaktivasi,
ditutup, di-minimize, di-maximize, dibuka, atau dikeluarkan.
|
Rangkain User Action,
Source Object., dan Tipe Event
User
Action
|
Source
Object
|
Tipe
Event
|
Mengklik suatu button
|
JButton
|
ActionEvent
|
Mengubah text
|
JtextComponent
|
TextEvent
|
Menekan tombol enter pada suatu
komponen text field
|
JTextField
|
ActionEvent
|
Memilih suatu event baru
|
JcomboBox
|
ItemEvent,
ActionEvent
|
Memilih satu atau atau banyak
item
|
Jlist
|
ListSelectionEvent
|
Memilih suatu check box
|
JcheckBox
|
ItemEvent,
ActionEvent
|
Memilih suatu radio button
|
JRadioButton
|
ItemEvent,
ActionEvent
|
Memilih suatu item menu
|
JmenuItem
|
ActionEvent
|
Menggerakkan scroll bar
|
JscrollBar
|
AdjustmentEvent
|
Window terbuka, tertutup, diberi
icon dilepaskan, atau window menutup.
|
Window
|
WindowEvent
|
Komponen ditambahkan atau dibuang
dari kontainer
|
Container
|
ContainerEvent
|
Komponen digerakkan, di resize,
disembunyikan (hidden), atau ditampilkan
|
Component
|
ComponentEvent
|
Komponen seketika menjadi fokus
atau kehilangan fokus
|
Component
|
FocusEvent
|
Key ditekan atau dilepaskan
|
Component
|
KeyEvent
|
Mouse ditekan, dilepaskan,
diklik, atau ketika mouse memasuki atau keluar dari suatu komponen.
|
Component
|
MouseEvent
|
Mouse digerakkan atau di-drag
|
Component
|
MouseEvent
|
3.
Event Object
Ketika sebuah event terjadi (misal
ketika user berinteraksi dengan komponen GUI), sebuah objek event diciptakan.
Objek berisi senua informasi yang perlu tentang event yang telah terjadi.
Informasi meliputi tipe dari event yang telah terjadi, seperti ketika mouse
telah di-klik. Ada beberapa class event untuk kategori yang berbeda dari user
action. Sebuah event object mempunyai
tipe data tentang salah satu dari class ini.
Contoh program :
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class CheckBoxHandling extends JFrame implements ItemListener {
private JTextField teks;
private JPanel panel;
private JCheckBox cb1, cb2, cb3;
public CheckBoxHandling() {
setTitle("Coba CheckBox Handling");
teks = new JTextField("Jenis Kelamin : Pilihan");
teks.setHorizontalAlignment(SwingConstants.CENTER);
panel = new JPanel(new FlowLayout());
cb1 = new JCheckBox("Pria");
cb2 = new JCheckBox("Wanita");
cb3 = new JCheckBox("Banci");
ButtonGroup group = new ButtonGroup();
group.add(cb1);
group.add(cb2);
group.add(cb3);
cb1.addItemListener(this);
cb2.addItemListener(this);
cb3.addItemListener(this);
setLayout(new BorderLayout());
add(teks, "North");
add(panel, "West");
panel.add(cb1);
panel.add(cb2);
panel.add(cb3);
pack();
setVisible(true);
setLocation(200,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public void itemStateChanged(ItemEvent event) {
if(event.getSource()==cb1) {
if(event.getStateChange()==ItemEvent.SELECTED)
teks.setText("Jenis Kelamin : Pria");
}
if(event.getSource()==cb2) {
if(event.getStateChange()==ItemEvent.SELECTED)
teks.setText("Jenis Kelamin : Wanita");
}
if(event.getSource()==cb3) {
if(event.getStateChange()==ItemEvent.SELECTED)
teks.setText("Jenis Kelamin : Banci");
}
}
}
public class EventCheckBox {
public static void main (String[] args) {
new CheckBoxHandling();
}
}
OUTPUT :
Tidak ada komentar:
Posting Komentar