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

dokumen-dokumen yang mirip
DIK-020 Pemograman Berorientasi Objek 5/24/2012

Bab Tujuan. 8.2 Delegation Event Model

1.Tujuan. 2. Latar Belakang

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

GUI Event Handling 1

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

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

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

GUI & Event Handling. Viska Mutiawani, M.Sc

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

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

Bab 1 Review Konsep Dasar dalam Java

A. TUJUAN PEMBELAJARAN

AWT (ABSTRACT WINDOWS TOOLKITS)

Sendy Ferdian Sujadi

Materi : GUI AWT & SWING.

Percobaan 7 GUI(Graphical User Interface )

Modul 9: antarmuka grafis (GUI) dalam window

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

Membuat Menu Login Sederhana [Full Coding]

GRAPHICAL USER INTERFACE (GUI)


Membangun GUI (dengan AWT & Swing) OOP Java

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

BAB IX. USER INTERFACE

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

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

Materi 5 Pemrograman Visual

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

1. Latar Belakang 2. Tujuan

GUI (Grapichal User Interface)

Obyek Lanjutan (Java)

Pemrograman Lanjut. Intro to GUI (Graphical User Interface)

BAB IX MEMBUAT FORM 9.1 Membuat Form Secara Konvensional

Graphics Programming

Dasar Perancangan Graphical User Interface

A. TUJUAN PEMBELAJARAN

MODUL PRAKTIKUM KE 3 A.

MODUL 7 - EXCEPTION HANDLING

J2ME GUI dan Manajemen Event

PENGENALAN JAVA GUI PROGRAMMING

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

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

Gambar 1. Deklarasi Interface MouseListener

Pemrograman Web Lanjut

Anonymous Inner Class

Praktikum JTable. Gambar 1

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

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

PAKET (PACKAGE) 20 Januari 2012

Slide 6: Writing Classes

Modul 08. User Interface 01

A. TUJUAN PEMBELAJARAN

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

Belajar Set Currency Format di TextField Java

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

INSTRUKSI PENCABANGAN

BAB 5 Mendapatkan Input dari Keyboard

Mudafiq R. Pratama

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

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

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

Abstract Window Toolkit

KASUS INHERITANCE. (Window, Multithreading dan Applet)

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

PEMROGRAMAN I. By : Sri Rezeki Candra Nursari

Membuat Kalkulator dengan Java

Mudafiq R. Pratama

Graphical User Interface (GUI)

BAB 5 Mendapatkan Input dari Keyboard

User interface & XML Layout

Fajar Yusran Zebua DASAR ANIMASI

Praktikum 9 Pemprograman Android GUI 2 Layar

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

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

PEMROGRAMAN II. By : Sri Rezeki Candra Nursari

Pemograman Swing. Netbeans:

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

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

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

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PENGENALAN OBJECT ORIENTED PROGRAMMING

PEMROGRAMAN II. Materi : nursari2010.blogdetik.com String String Handling Java.util,Java.io. By : Sri Rezeki Candra Nursari

Variabel tersebut seharusnya bisa dideklarasikan didalam try block dan block catch

- Setiap pola yang menggambarkan permasalahan yang terjadi secara berulang, serta

Waktu Sisa : 0:43:4. Sukses. Kesalahan pada URL. File tidak lengkap. Kesalahan umum. Mengerjakan finally. Diluar block

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

PEMROGRAMAN BERORIENTASI OBJEK

visit :

Pemrograman Java III

MODUL 3. Classes and Objects (part I)

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

EXCEPTION. 2. Pada kondisi bagaimana klausa finally tidak akan dieksekusi? Kode didalam block try memiliki statement return

Modul Praktikum 9 BAB IX LAYOUTING. Departemen Teknologi Informasi Telkom Applied Science School H a l

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

SOAL UAS Mata Kuliah : Pemrograman Berorientasi Objek Lanjutan

Tutorial A Menggambar Bendera Merah Putih Pada Frame

Materi 6 Pemrograman Visual

Modul 2. [access specifier] [tipe data] [nama variabel];

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

Pemrograman Berorientasi Obyek. Ramos Somya

Transkripsi:

GUI Event Handling minggu 13

Objectives / Tujuan Mengenal The Delegation Event Model Mengenal Event Classes Mengenal Event Listener: ActionListener Method MouseListener Method MouseMotionListener Method WindowListener Method Mengetahui langkah-langkah membuat Aplikasi GUI dengan Event Handling

Delegation of Event Model adalah model yang digunakan Java untuk menangani interaksi antara user dan komponen GUI untuk mendeskripsikan bagaimana program merespon interaksi user Bagian-bagian penting: Event Source Event Object Event Listener / Handler

Event Source Komponen GUI yang membuat event Contoh: button, combo box, text field, etc

Event Listener / Handler Menerima dan menangani event Mengandung business logic Contoh: menampilkan informasi penting ke user, melakukan komputasi matematis

Event Object Dibuat saat event muncul (mis: user berinteraksi dengan komponen GUI -- tekan button, ketik di text field, dll) Mengandung semua informasi yang berhubungan dengan event yang muncul Tipe event yang muncul Asal dari event tersebut Direpresentasikan oleh class Event

Penanganan Event Listener harus diregistrasi di event source Sekali diregistrasi, listener menunggu hingga event muncul Kapan event muncul? Object event dibuat oleh event source Object event dikirim oleh event source ke listener yang teregister (dengan memanggil method milik event listener yanga parameter sama dengan object event) Sekali listener menerima object event dari asal: mengartikan event memproses event yang muncul

Control Flow Delegasi Event Model

Registrasi Listener Berdasarkan Event Source Registrasi listener: void add<type>listener (<Type>Listener listenerobj) dimana: <Type> tergantung pada jenis event source (mis: Key, Mouse, Focus, Component, Action, dll Satu event source bisa meregistrasi beberapa listener Menghapus listener yang sudah teregister: void remove<type>listener (<Type>Listener listenerobj)

Class-class Event Class EventObject : Terletak di package java.util Class AWTEvent : Terletak di package java.awt merupakan subclass dari EventObject merupakan root dari semua event berbasis AWT Penamaan nama subclass: <Type>Event

Class-class Event Event Class ComponentEvent InputEvent ActionEvent ItemEvent KeyEvent MouseEvent TextEvent WindowEvent Deskripsi Extends AWTEvent. Dibuat jika component digeser, diubah ukurannya, dibuat visible atau hidden Extends ComponentEvent. Adalah abstract root untuk semua class event yang berdasar pada model inputan Extends AWTEvent. Dibuat ketika button ditekan, list item di-click dua kali, atau menu item dipilih Extends AWTEvent. Dibuat ketika item dipilih atau tidak dipilih oleh user, misal di list atau checkbox Extends InputEvent. Dibuat ketika key ditekan, dilepas atau diketik Extends InputEvent. Dibuat ketika tombol mouse ditekan, dilepas atau di-click, atau ketika cursor mouse memasuki atau keluar area component Extends AWTEvent. Dibuat ketika isi dari text field atau text area berubah Extends ComponentEvent. Dibuat ketika object Window dibuka, ditutup, diaktifkan, dinonaktifkan, di-minimize, dimaximize, atau focus in dan focus out

Event Listener Class yang mengimplementasi interface <Type>Listener Berikut adalah daftar interfacenya: Event Listener (Interface) ActionListener MouseListener MouseMotionListener WindowListener Menerima action event Menerima mouse event Deskripsi Menerima mouse motion event, termasuk dragging dan menggerakkan mouse Menerima window event

ActionListener Hanya memiliki satu method: public void actionperformed(actionevent e) merupakan handler untuk ActionEvent yang terjadi

MouseListener public void mouseclicked(mouseevent e) memiliki handler untuk event ketika mouse di-click (tekan dan lepas) public void mouseentered(mouseevent e) untuk menangani kasus dimana mouse memasuki area component public void mouseexited(mouseevent e) untuk menangani kasus dimana mouse keluar area component public void mousepressed(mouseevent e) dipanggil jika mouse ditekan public void mousereleased(mouseevent e) dipanggil jika mouse dilepas

MouseMotionListener public void mousedragged(mouseevent e) dipanggil jika mouse ditekan pada suatu component kemudian memindah component tsb (dragged). Dipanggil beberapa kali selama mouse di-dragged public void mousemoved(mouseevent e) dipanggil jika mouse digerakkan di component tanpa menekan mouse. Dipanggil beberapa kali ketika mose digerak-gerakkan

WindowListener public void windowopened(windowevent e) dipanggil ketika object Window dibuka public void windowclosing(windowevent e) dipanggil ketika user mencoba untuk menutup window dari system menu public void windowclosed(windowevent e) dipanggil ketika window ditutup, digunakan untuk membebaskan resource yang digunakan oleh window public void windowactivated(windowevent e) dipanggil ketika window dijadikan active window public void windowiconified(windowevent e) dipanggil ketika window di-minimize public void windowdeiconified(windowevent e) dipanggil ketika window diubah dari minimize ke normal

Langkah-Langkah Membuat Aplikasi GUI dengan Event Handling 1. Membuat class GUI Mengatur tampilan aplikasi GUI (components dan layout-nya) 2. Membuat class event listener (class yang mengimplementasi interface listener yang tepat) Override semua method yang dari interface listener yang dibutuhkan Tulislah program di masing-masing method sesuai kebutuhan anda Untuk method yang tidak dinginkan, kosongi saja bagian implementasinya 3. Registrasikan object listener ke event source Object adalah instansiasi dari class listener di langkah ke-2 Gunakan method add<type>listener untuk menambahkannya

Contoh Mouse Event import java.awt.*; import java.awt.event.*; public class MouseEventsDemo extends Frame implements MouseListener, MouseMotionListener { TextField tf; public MouseEventsDemo(String title) { // Displays GUI public void launchframe() { /* Add components to the frame */ add(tf, BorderLayout.SOUTH); setsize(300, 300); setvisible(true); // Implement methods of event listener interface public void mouseclicked(mouseevent me) { String msg = "Mouse clicked."; tf.settext(msg);

Contoh Mouse Event 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);

Contoh Mouse Event 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 method public static void main(string args[]) { MouseEventsDemo med = new MouseEventsDemo("Mouse Events Demo"); med.launchframe();

import java.awt.*; import java.awt.event.*; Contoh Close class CloseFrame extends Frame implements WindowListener { Window Label label; CloseFrame(String title) { super(title); label = new Label("Close the frame."); this.addwindowlistener(this); void launchframe() { setsize(300, 300); setvisible(true); // Implement methods of listener interface public void windowactivated(windowevent e) { public void windowclosed(windowevent e) { public void windowclosing(windowevent e) { setvisible(false); System.exit(0);

Contoh Close Window public void windowdeactivated(windowevent e) { public void windowdeiconified(windowevent e) { public void windowiconified(windowevent e) { public void windowopened(windowevent e) { // Main method public static void main(string args[]) { CloseFrame cf = new CloseFrame("Close Window Example"); cf.launchframe();

Class Adaptor Mengapa menggunakan Class Adaptor? Mengimplementasi semua method di interface tidak praktis Hanya beberapa method saja yang dibutuhkan Adapter class: Class di Java Mengimplementasi semua method dari setiap interface listener yang memiliki lebih dari satu method Implementasi dari sebua methodnya kosong

Class Adapter: Contoh Close Window import java.awt.*; import java.awt.event.*; class CloseFrameAdapter extends Frame { Label label; CFListener w = new CFListener(this); CloseFrameAdapter(String title) { super(title); label = new Label("Close the frame."); this.addwindowlistener(w); void launchframe() { setsize(300, 300); setvisible(true); public static void main(string args[]) { CloseFrame cf = new CloseFrame("Close Window Example"); cf.launchframe();

Class Adapter: Contoh Close Window class CFListener extends WindowAdapter { CloseFrameAdapter ref; CFListener(CloseFrameAdapter ref) { this.ref = ref; public void windowclosing(windowevent e) { ref.dispose(); System.exit(1);

Inner Class Class yang dideklarasikan di dalam class lainnya Mengapa menggunakan inner class? Supaya program lebih simple Terutama di event handling

Class Adapter: Contoh Close Window dengan Inner Class import java.awt.*; import java.awt.event.*; class CloseFrameAdapterInner extends Frame { Label label; CloseFrameAdapterInner(String title) { super(title); label = new Label("Close the frame."); this.addwindowlistener(new CFListener()); void launchframe() { setsize(300, 300); setvisible(true); class CFListener extends WindowAdapter { public void windowclosing(windowevent e) { dispose(); System.exit(1); public static void main(string args[]) { CloseFrame cf = new CloseFrame("Close Window Example"); cf.launchframe();

Anonymous Inner Class Class yang tidak memiliki nama Mengapa? Lebih simple daripada inner class Terutama di event handling

Class Adapter: Contoh Close Window dengan Anonymous Class import java.awt.*; import java.awt.event.*; class CloseFrameAdapterNoName extends Frame { Label label; CloseFrameAdapterNoName(String title) { super(title); label = new Label("Close the frame."); this.addwindowlistener(new WindowAdapter() { public void windowclosing(windowevent e) { dispose(); System.exit(1); public void windowclosed(windowevent e) { dispose(); System.exit(1); ); void launchframe() { setsize(300, 300); setvisible(true); public static void main(string args[]) { CloseFrame cf = new CloseFrame("Close Window Example"); cf.launchframe();