Monday, June 2, 2008

Event Listener

Jika sebuah CLASS ingin bereaksi atas aksi yang dilakukan oleh pemakai(user) melalui keyboard, mouse atau lainnya, maka Java menjawab dengan sistem yang disebut sebagai Event Handling.
Class tersebut harus mengimplementasikan interface yang diasosiasikan dengan event tersebut.
Program atau Interface ini disebut sebagai EventListener, antara lain:

ActionListener
Bereaksi atas perubahan komponen , seperti klik mouse atau tombol.

AdjustmentListener
Bereaksi atas perubahaan komponen untuk penyesuaian, misalnnya scrollbar yang digerakkan.

FocusListener
Event yang disebabkan oleh focus pada field, misalnya kursor berada pada field tersebut.

ItemListener
Bereaksi pada perubahan checkbox, radiobutton dan lainnya.

KeyListener
Bereaksi atas keyboard, misalnya penekanan tombol ALT Ctrl dan lainnya.

WindowsListener
Bereaksi atas perubahaan pada window, misalnya diperbesar, diperkecil, digeser atau ditutup.

MouseMotionListener
Bereaksi atas pergerakan mouse, misalnya bila melewati area komponen tertentu.

Listeners terdaftar pada java.awt.event.* yang harus disertakan ada class yang menggunakannya.
Setelah komponen dideklarasikan, maka listener dapat ditambahkan pada komponen tersebut, misalnya pada Button:
Jbutton b1=new Jbutton("Tombol"); b1.addActionListener(…)

perhatikan bahwa Listener ini harus ditembahkan lebih dahulu kekomponen, sebelum komponen tersebut diletakkan pada Frame/ Content Pane.

Interface Event Handling
Class yang menggunakan listener harus mengimplementasikan satu metoda yang disebut actionPerformed().

Public class MyClass implements ActionListeners {
Public void actionPerformed (ActionEvent ev){
…. …. }
}


Variable ActionEvent ev dapat menunjukkan identitas dari mana Event tersebut berasal. Berdasarkan hasil tersebut, maka program dapat memberikan reaksi yang diinginkan

public void actionPerformed(ActionEvent ev) {
Object obyek_asal= ev.getSource();

if(obyek_asal instanceof JButton) {
//berasal dari tombol ;
}

else if(obyek_asal instanceof JButton) {
//berasal dari tombol atau bisa dari textfield dan
//lain2
;
}
}

untuk lebih jelasnya berikut merupakan contoh dari penggunaan ActionListener


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class TombolAksi implements ActionListener
{
private JFrame layar=new JFrame("action listener");
private JButton b1=new JButton("tombol1");
private JButton b2=new JButton("tombol2");

public TombolAksi(){
layar.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c=layar.getContentPane();
c.setLayout(new FlowLayout());
//menambahkan action listener pada tombol
b1.addActionListener(this);
b2.addActionListener(this);
//-------------------------------
c.add(b1);
c.add(b2);
//mengatur ukuran form
layar.setSize(250,150);
//menampilkan form
layar.setVisible(true);
}

public void actionPerformed(ActionEvent AE)
{
Object obj=AE.getSource();
if(obj==b1)
{
layar.setTitle("tombol 1 ditekan");
}
else if(obj==b2)
{
layar.setTitle("tombol 2 ditekan");
}
}

public static void main(String args[]){
new TombolAksi();
}
}

apabila skrip class TombolAksi diatas dicompile dan dijalankan maka akan muncul form action listener dengan dua tombol seperti gambar berikut.











ketika tombol 1 ditekan maka text pada form akan berubah menjadi "tombol 1 ditekan "










ketika tombol 1 ditekan maka text pada form akan berubah menjadi "tombol 2 ditekan "










skrip diatas bisa didownload di download box dalam folder skrip dengan nama TombolAksi.java

bersambung ....

0 komentar: