Eno. Diberdayakan oleh Blogger.

Pages

RSS

Event Handling Event Handling


Event Handling
Dalam event handling pada Java ada empat bagian penting yang harus diketahui:
Event Object merupakan object yang mendiskripsikan sebuah event yang di-trigger oleh event source.
Event Handler merupakan method yang menerima event object dan melakukan respond yang sesuai dengan event object tersebut.
Event Listener merupakan interface yang akan meng-handle event yang terjadi. setiap type event mempunyai interface yang bersesuaian. Listener tersebut harus diimplementasikan oleh class yang akan meng-handle event
Event Source merupakan pembangkit / trigger sebuah event objects

setiap event object mempunyai  type event yang berbdea beda. sehingga kita harus menentukan type event sebelum menentukan jenis interface listener. karena setiap type event mempunyai jenis interface listener yang bersesuaian.
berikut ini type type event yang ada di Java :
ActionEvent
ItemEvent
WindowEvent
ContainerEvent
ComponentEvent
FocusEvent
TextEvent
KeyEvent
MouseEvent
AdjustmentEvent
Berikut ini Interface Listener
ActionListener
ItemListener
WindowListener
ContainerListener
ComponentListener
FocusListener
TextListener
KeyListener
MouseListener
MouseMotionListener
AdjustmentListener
Berdasarkan tulisan diatas, setiap type event mempunyai satu jenis interface listener kecuali MouseEvent yang mempunyai dua jenis interface listener. dan setiap interface mempunyai method abstract yang harus di override class yang meng-impletasikan interface. event listener dan event handler terdapat pada package java.awt.event
Bagaimana event handling dalam Java? ada tiga langkah penting dalam event handling
Deklarasikan class yang akan meng-handle event yang terjadi dan tuliskan code yang menyatakan class tersebut meng-implement interface listener
Event source mendaftarkan sebuah listener melalui method add<type>Listener
Kode yang mengimplementasikan method pada interface listener pada class yang akan meng-handle event. [ Override ]
Contoh 1
MouseEventsDemo.java
package mouseeventsdemo;
import java.awt.*;
import java.awt.event.*;
/**
*
* @author Ren
*/
public class MouseEventsDemo extends Frame implements MouseListener, MouseMotionListener {  // Langkah 1
TextField tf;
public MouseEventsDemo( String title){
super(title);
tf = new TextField(60);
addMouseListener(this); // Langkah 2
}
public void launchFrame() {
/* Menambah komponen pada frame */
add(tf, BorderLayout.SOUTH);
setSize(300,300);
setVisible(true);
}
public void mouseClicked(MouseEvent me) { // Langkah 3
String msg = “Mouse clicked.”;
tf.setText(msg);
}
public void mouseEntered(MouseEvent me) {
String msg = “Mouse entered component.”;
tf.setText(msg);
}
public void mouseExited(MouseEvent me) {
String msg = “Mouse exited component.”;
tf.setText(msg);
}
public void mousePressed(MouseEvent me) {
String msg = “Mouse pressed.”;
tf.setText(msg);
}
public void mouseReleased(MouseEvent me) {
String msg = “Mouse released.”;
tf.setText(msg);
}
public void mouseDragged(MouseEvent me) {
String msg = “Mouse dragged at ” + me.getX()
+ “,” + me.getY();
tf.setText(msg);
}
public void mouseMoved(MouseEvent me) {
String msg = “Mouse moved at ” + me.getX()
+ “,” + me.getY();
tf.setText(msg);
}
}
main.java
package mouseeventsdemo;
/**
*
* @author Ren
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
MouseEventsDemo med = new MouseEventsDemo(“Mouse Events Demo”);
med.launchFrame();
}
}


GUI Event Handling


Delegasi Event Model



Delegasi event model menguraikan bagaimana program Anda dapat merespon interaksi dari user. Untuk memahami model, pertama-tama mari kita pelajari melalui tiga komponen utamanya.

1. Event Source
Event  source  mengacu  pada  komponen  GUI  yang  meng-generate  event.  Sebagai
contoh, jika user menekan tombol, event source dalam hal ini adalah tombol.
2. Event Listener/Handler
Event  listener menerima berita dari event-event dan proses-proses  interaksi  user. Ketika tombol ditekan, listener akan mengendalikan dengan menampilkan sebuah informasi yang berguna untuk user.
3. Event Object
Ketika sebuah event terjadi (misal, ketika user berinteraksi dengan komponen GUI), sebuah object event diciptakan. Object  berisi  semua  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 mengenai salah satu dari class ini.
delegation event model :
Pada awalnya, sebuah listener seharusnya diregistrasikan dengan sebuah source sehingga  dapat  menerima informasi tentang event-event yang terjadi pada source tersebut.Hanya listener yang sudah teregistrasi yang dapat menerima pemberitahuan event-event. Ketika telah teregistrasi,sebuah listener hanya tinggal menunggu sampai
event terjadi.Ketika sesuatu terjadi dengan event source, sebuah event object akan menguraikan event yang diciptakan. Event kemudian ditembak oleh source pada listener yang teregistrasi.Saat listener menerima sebuah event object (pemberitahuan) dari source, dia akan bekerja. Menerjemahkan pemberitahuan dan memproses event yang terjadi.

Registrasi Listeners
Event source mendaftarkan sebuah listener melalui method add<Type>Listener.
         void add<Type>Listener(<Type>Listener listenerObj)
 <Type> tergantung pada tipe dari event source. Dapat berupa Key, Mouse, Focus,Component, Action dan lainnya.
Beberapa listeners dapat diregistrasi dengan satu event source untuk menerima pemberitahuan event. Listener  yang telah teregistrasi dapat juga tidak diregistrasikan lagi menggunakan method remove<Type>Listener.
        void remove<Type>Listener(<Type>Listener listenerObj)
 Class- Class Event
Sebuah event object mempunyai sebuah class event sebagai tipe data acuannya. Akar dari hirarki class event adalah class EventObject, yang dapat ditemukan pada paket java.util. Immediate subclass dari class EventObject adalah class AWTEvent. Class AWTEvent didefinisikan pada paket java.awt. Itu merupakan akar dari semua AWT-based events. Berikut ini beberapa dari class-class AWT event.


 Catatan, bahwa semua subclass-subclass AWTEvent mengikuti konvensi nama berikut ini:
<Type>Event
Event Listeners
Event listeners adalah class yang mengimplementasikan interfaces <Type>Listener. Tabel di bawah menunjukkan beberapa listener interfaces yang biasanya digunakan.


Method ActionListener
Interface ActionListener hanya terdiri dari satu method.
 Method MouseListener
Di bawah ini adalah method-method MouseListener yang seharusnya digunakan dalam penerapan class.

 Method-Method MouseMotionListener
MouseMotionListener mempunyai dua method untuk diimplementasikan.

 Method-Method WindowListener

 Petunjuk untuk Menciptakan Aplikasi Handling GUI Events
Berikut ini langkah-langkah yang Anda butuhkan untuk mengingat ketika ingin membuat aplikasi GUI dengan event handling.
1. Buatlah sebuah class yang menguraikan dan membuat suatu tampilan dari aplikasi GUI Anda.
2. Buatlah sebuah class yang menerapkan interface listener yang sesuai. Class ini boleh mengacu pada class yang sama seperti pada langkah awal.
3. Dalam menerapkan class, gunakan semua method-method dengan interface listener yang sesuai.Uraikan masing-masing method bagaimana Anda ingin mengendalikan event-event. Anda dapat memberikan implementasi kosong untuk method yang tidak ingin Anda gunakan.
4. Daftarkan object listener, instansiatiate dari class listener pada langkah 2, dengan source component menggunakan method add<Type>Listener.

 Contoh Mouse Events
import java.awt.*;
import java.awt.event.*;

public class MouseEventsDemo extends Frame impleme
                       MouseListener, MouseMotionL
   TextField tf;
   public MouseEventsDemo(String title){
      super(title);
      tf = new TextField(60);
      addMouseListener(this);
   }
   public void launchFrame() {
      /* Menambah komponen pada frame */
      add(tf, BorderLayout.SOUTH);
      setSize(300,300);
      setVisible(true);
   }
   public void mouseClicked(MouseEvent me) {
      String msg = "Mouse clicked.";
      tf.setText(msg);
   }
   public void mouseEntered(MouseEvent me) {
      String msg = "Mouse entered component.";
      tf.setText(msg);
   }
   public void mouseExited(MouseEvent me) {
      String msg = "Mouse exited component.";
      tf.setText(msg);
   }
   public void mousePressed(MouseEvent me) {
      String msg = "Mouse pressed.";
      tf.setText(msg);
   }
   public void mouseReleased(MouseEvent me) {
      String msg = "Mouse released.";
      tf.setText(msg);
   }
   public void mouseDragged(MouseEvent me) {
      String msg = "Mouse dragged at " + me.getX() + "," +
                                                me.getY();
      tf.setText(msg);
   }
   public void mouseMoved(MouseEvent me) {
      String msg = "Mouse moved at " + me.getX() + "," +
                                                me.getY();
      tf.setText(msg);
   }
   public static void main(String args[]) {
      MouseEventsDemo med = new MouseEventsDemo("Mouse Events
                                                   Demo");
      med.launchFrame();
    }
}

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 komentar:

Posting Komentar