DIK-020 Pemograman Berorientasi Objek 5/24/2012

dokumen-dokumen yang mirip
Bab Tujuan. 8.2 Delegation Event Model

GUI Event Handling. minggu 13. Wednesday, 16 May 12

GUI Event Handling. 5. Mendiskusikan keuntungan-keuntungan dari menggunakan inner dan anonymous class

1.Tujuan. 2. Latar Belakang

GUI Event Handling 1

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

Membuat User Interface dengan Swing. Program yang dibuat sebelumnya selalu berbasis console User lebih senang berinteraksi dengan

IF PEMROGRAMAN LANJUT EVENT. Oleh : Andri Heryandi, M.T.

A. TUJUAN PEMBELAJARAN

Bab 1 Review Konsep Dasar dalam Java

GUI & Event Handling. Viska Mutiawani, M.Sc. 1 Viska Mutiawani - Informatika FMIPA Unsyiah

Materi : GUI AWT & SWING.

GUI & Event Handling. Viska Mutiawani, M.Sc

AWT (ABSTRACT WINDOWS TOOLKITS)

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Modul 9: antarmuka grafis (GUI) dalam window

Sendy Ferdian Sujadi

Percobaan 7 GUI(Graphical User Interface )

BAB IX. USER INTERFACE

GRAPHICAL USER INTERFACE (GUI)

Membuat Menu Login Sederhana [Full Coding]

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK (JAVA) PERTEMUAN 11. GUI, Event Handling, Exception Handling

1. Latar Belakang 2. Tujuan

BAB I PENDAHULUAN. Listing 1.1 menunjukkan program GUI Java sederhana menggunakan AWT. import java.awt.*; import java.awt.event.*;

Event Listener. Beberapa EventListener yang akan diberikan contoh pada slide ini antara lain:

2. Manakah diantara pilihan berikut ini yang merupakan bagian dari event delegation model? Sebuah komponen yang menampilkan message

Obyek Lanjutan (Java)

Graphics Programming

BAB IX MEMBUAT FORM 9.1 Membuat Form Secara Konvensional

Membangun GUI (dengan AWT & Swing) OOP Java

A. TUJUAN PEMBELAJARAN

Materi 5 Pemrograman Visual


MODUL PRAKTIKUM KE 3 A.

1. Mana dari adapter berikut ini yang merupakan class adapter yang benar didalam Java. ComponentAdapter

GUI (Grapichal User Interface)

PERTEMUAN VI AWT DAN SWING TUJUAN PRAKTIKUM. 1. Praktikan mengenal pembuatan GUI pada Java. 2. Praktikan memahami action pada objek dalam Java.

Pemrograman Web Lanjut

Dasar Perancangan Graphical User Interface

Pemrograman Lanjut. Intro to GUI (Graphical User Interface)

PENGENALAN JAVA GUI PROGRAMMING

MODUL PRAKTIKUM BERORIENTASI OBJEK NINF615 SEMESTER GASAL 2016/2017 PROGRAM STUDI S1 TEKNIK INFORMATIKA

Anonymous Inner Class

J2ME GUI dan Manajemen Event

Modul Praktikum 8 BAB VIII LISTENER/EVENT HANDLER. Departemen Teknologi Informasi Telkom Applied Science School 2013.

Gambar 1. Deklarasi Interface MouseListener

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

MODUL 7 - EXCEPTION HANDLING

mouse dan keyboard yang akan memberikan dampak atau perubahan kepada suatu objek. Hampir keseluruhan game komputer menggunakan dua item ini,

PAKET (PACKAGE) 20 Januari 2012

Slide 6: Writing Classes

BAB 5 Mendapatkan Input dari Keyboard

Modul 08. User Interface 01

TPI4202 e-tp.ub.ac.id. Lecture 4 Mas ud Effendi

Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.

Praktikum JTable. Gambar 1

Score: Persentage: % ~ u ~ Generated by Foxit PDF Creator Foxit Software For evaluation only.

Abstract Window Toolkit

Membuat Frame, Label, TextField dan Button di Java [Full Coding]

BAB I PROJECT NETBEANS DAN GUI SEDERHANA

KELAS INNER, KELAS ABSTRAK, DAN INTERFACE. 16 th week Estu Sinduningrum ST,MT

PEMROGRAMAN I. By : Sri Rezeki Candra Nursari

PERTEMUAN 1 Membuat Project & Komponen Swing [PBO II JAVA] dosen : SOPINGI, S.Kom

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

BAB 5 Mendapatkan Input dari Keyboard

A. TUJUAN PEMBELAJARAN

Pemrograman Java III

Belajar Set Currency Format di TextField Java

Fajar Yusran Zebua DASAR ANIMASI

3/31/2011. Tujuan. Inheritance, Polymorphism,& Interfaces. Inheritance / pewarisan. Inheritance / pewarisan. Inheritance / pewarisan

INSTRUKSI PENCABANGAN

SOAL UAS Mata Kuliah : Pemrograman Berorientasi Objek Lanjutan

VISUAL JAVA PROGRAMMING

GUI in Java. Presented by HCI Team Ali Ridho Barakbah Umi Sa adah Nur Rosyid Mubtada i. Supervised by Prof. Kohei Arai

KASUS INHERITANCE. (Window, Multithreading dan Applet)

Pemrograman Java III

BAGIAN XIII GRAPHICAL USER INTERFACE DENGAN SWING. Praktikum I : Menggunakan JFrame, JTextField, JLabel dan JButton

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

PENGENALAN FLASH DAN ACTIONSCRIPT 3.0

GUI, Ev e Ev n e t n Handling, Ex ception Handling in Java

Pertemuan 2 (2) : Membuat Class dan mengakses Anggota Class

LAPORAN TUGAS AKHIR APLIKASI KALKULATOR BERBASIS JAVA

Membuat Kalkulator dengan Java

Tutorial A Menggambar Bendera Merah Putih Pada Frame

BAB 2 INPUT DARI KEYBOARD

Graphical User Interface (GUI)

User interface & XML Layout

JAVA SWING. Swing merupakan library pada java untuk membuat sebuah tampilan seperti

Pemrograman Berorientasi Obyek. Ramos Somya

BAB I PENDAHULUAN. Maksud dan tujuan dari pembuatan Aplikasi Penentu Nilai Mahasiswa pada pemrograman java adalah:

Pemograman Swing. Netbeans:

MEMBUAT APLIKASI ZODIAK SEDERHANA DENGAN JAVA BY : INDRA

Refreshing Praktikum: GUI (Graphical User Interface)

Program Penghitungan II Dengan Java

1. Manakah jawaban yang benar,pada saat Anda mengcompile dan menjalankan class berikut ini:

Mudafiq R. Pratama

Pemrograman Berorientasi. Abstract & Interface

Pemrograman Java III

Bekerja dengan FORM dan EVENTS

PRAKTIKUM 1. Framework adalah kerangka kerja yang terdiri dari kumpulan dari beberapa fungsi,

Transkripsi:

Topik JAVA Education Network Indonesia GUI Event Handling Pengenalan Pemrograman 2 Class-class Event Event Listeners Method ActionListener Method MouseListener Method MouseMotionListener Method WindowListener Petunjuk untuk Menciptakan Aplikasi Handling GUI Events jeni.jardiknas.org Topik Adapter Class Inner Class Anonymous Inner Class Model ini digunakan oleh Java untuk menangani interaksi user dengan komponenkomponen GUI Menjelaskan bagaimana program Anda dapat merespon suatu interaksi user Tiga Komponen Penting: Event Source Event Listener/Handler Event Object Event Source Komponen GUI yang meng-generate event Contoh: button, mouse, keyboard Event Listener/Handler Menerima berita dari event-event dan proses interaksi user Contoh: menampilkan informasi kepada user, untuk menghitung sebuah nilai Event Object Ketika sebuah event terjadi (misal, ketika user berinteraksi dengan komponen GUI), sebuah objek event diciptakan Berisi semua informasi yang perlu tentang event yang telah terjadi Tipe dari event yang telah terjadi Source dari event Memungkinkan mempunyai class event sebagai tipe data 1

Sebuah listener seharusnya diregistrasikan dengan sebuah source Ketika telah teregistrasi, sebuah listener hanya tinggal menunggu sampai event terjadi Ketikan sebuah event terjadi sebuah event object tercipta Event kemudian ditembak oleh source pada listeners yang teregistrasi Saat listener menerima sebuah event object (pemberitahuan) dari source Menerjemahkan pemberitahuan Memproses event yang terjadi. Registrasi dari Listeners Event source mendaftarkan sebuah listener melalui method: void add<type>listener(<type>listener listenerobj) dimana, <Type> bergantung pada tipe dari event source Dapat berupa Key, Mouse, Focus, Component, Action dan lainnya Beberapa listeners dapat diregistrasi dengan satu event source Listener yang telah teregistrasi dapat juga tidak diregistrasikan lagi: void remove<type>listener(<type>listener listenerobj) Class-class Event Sebuah event object mempunyai sebuah class event sebagai tipe data acuannya Class EventObject Dapat ditemukan didalam paket java.util Class AWTEvent Immediate subclass dari class EventObject Didefinisikan pada paket java.awt Merupakan akar dari semua AWT-based events Semua subclassawtevent mengikuti konversi nama ini: <Type>Event Class Event Class-class Event Deskripsi ComponentEvent Extends AWTEvent. Dijalankan ketika sebuah komponen dipindahkan, di-resize, diset visible atau hidden. InputEvent ActionEvent ItemEvent KeyEvent Extends ComponentEvent. Abstrak root class event untuk semua komponen-level input class-class event. Extends AWTEvent. Dijalankan ketika sebuah tombol ditekan, melakukan double-klik daftar item, atau memilih sebuah menu. Extends AWTEvent. Dijalankan ketika sebuah item dipilih atau dideselect oleh user, seperti sebuah list atau checkbox. Extends InputEvent. Dijalankan ketika sebuah key ditekan, dilepas atau diketikkan. MouseEvent Extends InputEvent. Dijalankan ketika sebuah tombol mouse ditekan, dilepas, atau di-klik (tekan dan lepas), atau ketika sebuah kursor mouse masuk atau keluar dari bagian visible dari komponen. TextEvent WindowEvent Extends AWTEvent. Dijalankan ketika nilai dari text field atau text area dirubah. Extends ComponentEvent. Dijalankan sebuah objek Window dibuka, ditutup, diaktifkan, nonaktifkan, iconified, deiconified, atau ketika focus ditransfer kedalam atau keluar window. Event Listener Class yang mengimplementasikan interfaces <Type>Listener Beberapa listener interfaces yang biasanya digunakan : 2

Method ActionListener Method MouseListener Hanya terdiri dari satu method ActionListener Method public void actionperformed(actionevent e) Mengendalikan ActionEvent e yang terjadi. MouseListener Methods public void mouseclicked(mouseevent e) Dipanggil pada saat tombol mouse di click (seperti tekan dan lepas). public void mouseentered(mouseevent e) Dipanggil pada saat kursor mouse memasuki area komponen. public void mouseexited(mouseevent e) Dipanggil pada saat kursor mouse meninggalkan area komponen. public void mousepressed(mouseevent e) Dipanggil pada saat tombol mouse ditekan di atas komponen public void mousereleased(mouseevent e) Dipanggil pada saat tombol mouse dilepas di atas komponen Method MouseMotionListener MouseMotionListener Methods public void mousedragged(mouseevent e) Digunakan untuk memantau pergerakan mouse yang melintasi objek pada saat tombol mouse ditekan. Tindakan ini persis sama dengan tindakan pada saat memindahkan sebuah window. public void mousemoved(mouseevent e) Digunakan untuk memantau pergerakan mouse pada saat mouse melintasi area suatu objek. Pada saat ini tidak ada mouse yang ditekan, hanya memindahkan pointer mouse melalui objek. WindowListener Methods Method WindowListener public void windowopened(windowevent e) Dipanggil pada saat objek window dibuka (pertama kali window dibuat tampil). public void windowclosing(windowevent e) Dipanggil pada saat user mencoba untuk menutup objek Window dari menu sistem objek. public void windowclosed(windowevent e) Dipanggil pada saat objek Window ditutup setelah memanggil penempatan (misal, release dari resource-resource yang digunakan oleh source) pada objek. public void windowactivated(windowevent e) Dilibatkan ketika objek Window adalah window yang aktif (window masih dipakai). public void windowdeactivated(windowevent e) Dilibatkan ketika objek Window tidak lagi merupakan window yang aktif. public void windowiconified(windowevent e) Dipanggil ketika objek Window di-minimize. public void windowdeiconified(windowevent e) Dipanggil ketika objek Window kembali setelah di-minimize ke keadaan normal. Membuat Aplikasi GUI dengan Event Handling Petunjuk: 1. Buatlah sebuah class GUI Menguraikan dan menampilkan tampilan dari aplikasi GUI Anda 2. Buatlah sebuah class yang menerapkan interface listener yang sesuai Boleh mengacu pada class yang sama seperti langkah pertama 3. Dalam penerapan class Gunakan semua method dengan interface listener yang sesuai Uraikan pada masing-masing method bagaimana Anda ingin mengendalikan event Dapat memberikan implementasi kosong untuk method yang tidak ingin Anda gunakan 4. Daftarkan objek listener Instansiasi dari class listener pada langkah 2 Dengan source component menggunakan method add<type>listener 3 public class MouseEventsDemo extends Frame implements MouseListener, MouseMotionListener { 4 TextField tf; 5 public MouseEventsDemo(String title){ 6 super(title); 7 tf = new TextField(60); 8 addmouselistener(this); 9 addmousemotionlistener(this); 10 } 11 //bersambung 3

11 public void launchframe() { 12 /* Menambah komponen pada frame */ 13 add(tf, BorderLayout.SOUTH); 14 setsize(300,300); 15 setvisible(true); 16 } 17 public void mouseclicked(mouseevent me) { 18 String msg = "Mouse clicked."; 19 tf.settext(msg); 20 } 21 //bersambung... 22 public void mouseentered(mouseevent me) { 23 String msg = "Mouse entered component."; 24 tf.settext(msg); 25 } 26 public void mouseexited(mouseevent me) { 27 String msg = "Mouse exited component."; 28 tf.settext(msg); 30 public void mousepressed(mouseevent me) { 31 String msg = "Mouse pressed."; 32 tf.settext(msg); 33 } 34 //bersambung... 35 public void mousereleased(mouseevent me) { 36 String msg = "Mouse released."; 37 tf.settext(msg); 38 } 39 public void mousedragged(mouseevent me) { 40 String msg = "Mouse dragged at " + me.getx() 41 + "," + me.gety(); 42 tf.settext(msg); 43 } 44 //bersambung... 45 public void mousemoved(mouseevent me) { 46 String msg = "Mouse moved at " + me.getx() 47 + "," + me.gety(); 48 tf.settext(msg); 49 } 50 public static void main(string args[]) { 51 MouseEventsDemo med = 52 new MouseEventsDemo("Mouse Events Demo"); 53 med.launchframe(); 54 } 55 } 3 class CloseFrame extends Frame 4 implements WindowListener { 5 Label label; 6 CloseFrame(String title) { 7 super(title); 8 label = new Label("Close the frame."); 9 this.addwindowlistener(this); 10 } 11 //bersambung... 13 void launchframe() { 14 setsize(300,300); 15 setvisible(true); 16 } 17 public void windowactivated(windowevent e) { 18 } 19 public void windowclosed(windowevent e) { 20 } 21 public void windowclosing(windowevent e) { 22 setvisible(false); 23 System.exit(0); 24 } 25 //bersambung... 4

Adapter Classes 26 public void windowdeactivated(windowevent e) { 27 } 28 public void windowdeiconified(windowevent e) { 30 public void windowiconified(windowevent e) { 31 } 32 public void windowopened(windowevent e) { 33 } 34 public static void main(string args[]) { 35 CloseFrame cf = 36 new CloseFrame("Close Window Example"); 37 cf.launchframe(); 38 } 39 } Mengapa menggunakan Adapter classes? Menerapkan semua method dari interface yang semuanya akan membutuhkan banyak tugas Tertarik pada penerapan hanya beberapa method dari interface saja Adapter classes Built-in didalam Java Menerapkan semua method dari masing-masing listener interface dengan lebih dari satu method Implementasi dari method-method yang semuanya kosong Adapter Classes: 3 class CloseFrame extends Frame{ 4 Label label; 5 CFListener w = new CFListener(this); 6 7 CloseFrame(String title) { 8 super(title); 9 label = new Label("Close the frame."); 10 this.addwindowlistener(w); 11 } 12 //bersambung... Adapter Classes: 14 void launchframe() { 15 setsize(300,300); 16 setvisible(true); 17 } 18 19 public static void main(string args[]) { 20 CloseFrame cf = 21 new CloseFrame("Close Window Example"); 22 cf.launchframe(); 23 } 24 } 25 //bersambung... Adapter Classes: 25 class CFListener extends WindowAdapter { 26 CloseFrame ref; 27 CFListener( CloseFrame ref ){ 28 this.ref = ref; 30 public void windowclosing(windowevent e) { 31 ref.dispose(); 32 System.exit(1); 33 } 34 } Inner Classes Sebuah class yang dideklarasikan di dalam class lain Mengapa menggunakan inner classes? Membantu Anda menyederhanakan program Terutama dalam event handling 5

Inner Classes: 3 class CloseFrame extends Frame{ 4 Label label; 5 CloseFrame(String title) { 6 super(title); 7 label = new Label("Close the frame."); 8 this.addwindowlistener(new CFListener()); 9 } 10 //bersambung... Inner Classes: 13 void launchframe() { 14 setsize(300,300); 15 setvisible(true); 16 } 17 class CFListener extends WindowAdapter { 18 public void windowclosing(windowevent e) { 19 dispose(); 20 System.exit(1); 21 } 22 } 23 //bersambung... Inner Classes: 25 public static void main(string args[]) { 26 CloseFrame cf = 27 new CloseFrame("Close Window Example"); 28 cf.launchframe(); 30} Anonymous Inner Classes inner class yang tanpa nama Mengapa menggunakan anonymous inner classes? Menyederhanakan kode-kode Anda lebih lanjut Terutama dalam event handling Anonymous Inner Classes: import java.awt.event.*; 2 class CloseFrame extends Frame{ 3 Label label; 4 CloseFrame(String title) { 5 super(title); 6 label = new Label("Close the frame."); 7 this.addwindowlistener(new WindowAdapter(){ 8 public void windowclosing(windowevent e){ 9 dispose(); 10 System.exit(1); 11 } Anonymous Inner Classes: 14 void launchframe() { 15 setsize(300,300); 16 setvisible(true); 17 } 18 public static void main(string args[]) { 19 CloseFrame cf = 20 new CloseFrame("Close Window Example"); 21 cf.launchframe(); 22 } 23 } 12 }); 13 } 6

Registrasi listeners void add<type>listener(<type>listener listenerobj) Listeners menunggu sampai sebuah event terjadi Ketika event terjadi: Event object tercipta Event kemudian ditembak oleh source pada listeners yang teregistrasi Ketika listener menerima event object: Menterjemahkan pemberitahuan Memproses event yang terjadi Komponen Event Source Event Listener/Handler Event Object Class-class Event Class EventObject Class AWTEvent Merupakan akar dari semua AWT-based event semua subclass AWTEvent mengikuti konvensi nama ini: <Type>Event Event Listeners Method ActionListener Method MouseListener Method MouseMotionListener Method WindowListener Membuat Aplikasi GUI dengan Event Handling 1. Buatlah sebuah class GUI 2. Buatlah sebuah class yang menerapkan interface listener yang sesuai 3. Dalam penerapan class Gunakan semua method dengan interface listener yang sesuai Uraikan pada masing-masing method bagaimana Anda ingin mengendalikan event 4. Mendaftarkan listener object dengan source Menggunakan method add<type>listener Menyederhanakan kode Anda: Adapter Classes Inner Classes Anonymous Inner Classes 7