Kamis, 16 Januari 2014

EVENT HANDLING

  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.
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.
Ø  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.
                            
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