Anda di halaman 1dari 7

PRAKTIKUM : 3

JUDUL : GUI EVENT HANDLING


WAKTU : 1 X 120 Menit

1. Kompetensi Dasar
a. Menerangkan komponen-komponen delegation event model
b. Mengerti bagaimana delegation event model bekerja
c. Menciptakan aplikasi GUI yang berinteraksi dengan user
d. Mendiskusikan manfaat dari class-class adapter
e. Mendiskusikan keuntungan-keuntungan dari menggunakan inner dan anonymous class

2. Teori Dasar
Pada modul ini, Anda akan belajar bagaimana mengendalikan events triggered ketika user
berinteraksi dengan aplikasi GUI Anda. Setelah menyelesaikan modul ini, Anda akan dapat
mengembangkan aplikasi GUI yang dapat merespon interaksi user.
Delegasi event model menguraikan bagaimana program Anda dapat merespon interaksi dari
user. Untuk memahami model, mari kita pelajari pertama-tama melalui tiga komponen utamanya.
a. 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.
b. 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.
c. 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 class ini.
a. PraktikumMouse Event Demo :

/**
*
* @author choirulhuda
*/
public class MouseEventDemo extends Frame implements MouseListener,
MouseMotionListener{

TextField tf;

public MouseEventDemo(String title) throws HeadlessException {


super(title);
tf = new TextField(60);
addMouseListener(this);
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
super.windowClosing(e);
dispose();
}
});
}

@Override
public void mouseClicked(MouseEvent e) {
tf.setText("Mouse Clicked");
}
@Override
public void mousePressed(MouseEvent e) {
tf.setText("Mouse Pressed");
}

@Override
public void mouseReleased(MouseEvent e) {
tf.setText("Mouse Released");
}

@Override
public void mouseEntered(MouseEvent e) {
tf.setText("Mouse Entered");
}

@Override
public void mouseExited(MouseEvent e) {
tf.setText("Mouse Exited");
}

@Override
public void mouseDragged(MouseEvent e) {
tf.setText("Mouse Dragged");
}

@Override
public void mouseMoved(MouseEvent e) {
String msg = "Mouse moved at " + e.getX() + "," + e.getY();
tf.setText(msg);
}

public void launchFrame(){


add(tf, BorderLayout.SOUTH);
setSize(300, 300);
setLocationRelativeTo(null);
setVisible(true);
}

public static void main(String[] args) {


MouseEventDemo med = new MouseEventDemo("Mouse Event Demo");
med.launchFrame();
}

Hasil Percobaan 1 Output MouseEvent Demo :


b. Close Frame :

/**
*
* @author choirulhuda
*/
public class CloseFrame extends Frame implements WindowListener{

Label label;

public CloseFrame(String title) throws HeadlessException {


super(title);
label = new Label("Close the Window");
addWindowListener(this);
}

public void lauchFrame(){


add(label);
setSize(300, 300);
setLocationRelativeTo(null);
setVisible(true);
}

@Override
public void windowOpened(WindowEvent e) {
System.out.println("Window Opened");
}

@Override
public void windowClosing(WindowEvent e) {
System.out.println("Window Closing");
setVisible(false);
System.exit(0);
}

@Override
public void windowClosed(WindowEvent e) {
System.out.println("Window Closed");
}

@Override
public void windowIconified(WindowEvent e) {
System.out.println("Window Iconified");
}

@Override
public void windowDeiconified(WindowEvent e) {
System.out.println("Window Deiconified");
}

@Override
public void windowActivated(WindowEvent e) {
System.out.println("Window Activated");
}

@Override
public void windowDeactivated(WindowEvent e) {
System.out.println("Window Deactified");
}

public static void main(String[] args) {


CloseFrame cf = new CloseFrame("Close Frame");
cf.lauchFrame();
}
}
Hasil Percobaan 2 Output CloseFrame :

c. Close Frame dengan Command Listener tertentu :

/**
*
* @author choirulhuda
*/
public class CloseFrame2 extends Frame{

Label label;
CFListener w = new CFListener(this);

public CloseFrame2(String title) throws HeadlessException {


super(title);
label = new Label("Close the Frame");
addWindowListener(w);
}

void launchFrame(){
add(label);
setSize(300,300);
setLocationRelativeTo(null);
setVisible(true);
}

class CFListener extends WindowAdapter {


CloseFrame2 ref;

public CFListener(CloseFrame2 ref) {


this.ref = ref;
}

@Override
public void windowClosing(WindowEvent e) {
System.out.println("Window Closing");
ref.dispose();
System.exit(1);
}
}

public static void main(String[] args) {


CloseFrame2 cf = new CloseFrame2("Close Window Inner");
cf.launchFrame();
}

}
Hasil percobaan 3 Output Close Frame dengan membuat Methode Listener sendiri:

d. Close Frame dengan Inner Class:

/**
*
* @author choirulhuda
*/
public class CloseFrame3 extends Frame{

Label label;

public CloseFrame3(String title) throws HeadlessException {


super(title);
label = new Label("Close the Frame");
this.addWindowListener(new CFListener());
}

void launchFrame(){
add(label);
setSize(300,300);
setLocationRelativeTo(null);
setVisible(true);
}

class CFListener extends WindowAdapter {

@Override
public void windowClosing(WindowEvent e) {
super.windowClosing(e);
System.out.println("Window Closing");
dispose();
System.exit(1);
}
}

public static void main(String[] args) {


CloseFrame3 cf = new CloseFrame3("Close Window");
cf.launchFrame();
}

}
Hasil percobaan 4 Output Close Frame dengan inner class:

e. Anonymous Inner class:

/**
*
* @author choirulhuda
*/
public class CloseFrame4 extends Frame{

Label label;

public CloseFrame4(String title) throws HeadlessException {


super(title);
label = new Label("Close the Window");
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.out.println("Window Closing");
super.windowClosing(e);
dispose();
}
});
}

void launchFrame(){
add(label);
setSize(300,300);
setLocationRelativeTo(null);
setLayout(new FlowLayout(FlowLayout.CENTER));
setVisible(true);

public static void main(String[] args) {


CloseFrame4 cf = new CloseFrame4("Close Window");
cf.launchFrame();
}

}
Hasil percobaan 5 Output Close Frame dengan anonymous inner class:

Anda mungkin juga menyukai