04. Listener dan Event Handler pada SWT

posted Sep 26, 2011, 1:21 AM by Editor KursusInternet.com   [ updated Nov 6, 2011, 6:10 AM by Editor KursusInternet ]

Pendahuluan

Sama seperti pemrograman antar muka pada umumnya, maka framework SWT juga harus mendaftarkan event handler sehingga aplikasi kita dapat bereaksi terhadap aktivitas yang dilakukan pada suatu widget tertentu.

Tiap event memiliki listenernya sendiri yang akan memantau terjadinya event tersebut. Sebagai contoh MouseEvent - yang  mewakili aktivitas pengguna ketika mengklik atau melepaskan klik dari mouse - memiliki listener MouseListener.

Berikut adalah contoh cara mendaftarkan listener ke dalam widget Button :

    Button button = new Button(shell, SWT.PUSH);
    button.addMouseListener(objekMouseListener);

objekMouseListener adalah instance dari implementasi interface MouseListener .

Contoh Penggunaan

package com.kursusinternet.swt;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;

public class ContohEvent {
  Display display;
  Shell shell;
  
  class ContohListener implements MouseListener
  {

    @Override
    public void mouseDoubleClick(MouseEvent arg0) {
            
    }

    @Override
    public void mouseDown(MouseEvent arg0) {
      MessageBox kotakPesan = new MessageBox(shell, SWT.ICON_WARNING);
      kotakPesan.setText("Notifikasi !");
      kotakPesan.setMessage("Anda telah mengklik tombol 'Coba Klik'");
      kotakPesan.open();
    }

    @Override
    public void mouseUp(MouseEvent arg0) {
          
    }    
  }

  
  public void tampil()
  {
    display = new Display();
    shell = new Shell(display);
    ContohListener objListener = new ContohListener();
    
    Button btnCoba = new Button(shell, SWT.PUSH);

    btnCoba.setSize(100,50);
    btnCoba.setLocation(50,75);
    btnCoba.setText("Coba Klik");
    btnCoba.addMouseListener(objListener);
    
    shell.setText("Contoh Penggunaan Event !");
    shell.setSize(200200);
    shell.open();

    while (!shell.isDisposed()) {
      if (!display.readAndDispatch()) {
        display.sleep();
      }
    }
    display.dispose();     
  }
  
  public static void main(String[] args) {
    new ContohEvent().tampil();
  }
}

Hasil Eksekusi


Referensi

Comments