GUI Event Handling.

Slides:



Advertisements
Presentasi serupa
Oleh: Mike Yuliana PENS-ITS
Advertisements

Pemrograman Visual I Pendahuluan Presented by : Herianto.
Event Handling di JAVA.
Pemrograman JAVA (TIB09)
Java Applets Pertemuan 7
KOMPONEN DALAM DELPHI Form
Konsep Abstract Windowing Toolkit (AWT)
GUI in Java.
MIDlet User Interface (3) As’ad Djamalilleil
Struktur Kode Aplikasi Java (2) As’ad Djamalilleil
GUI & Event Handling Viska Mutiawani, M.Sc.
JAVA GUI (Graphical User Interface)
Java Review Oleh: Idris Winarno.
Modul 9: antarmuka grafis (GUI) dalam window
Java GUI.
PBO - PERTEMUAN 9- JAVA GUI.
Abstract windowing toolkit & swing
Graphic User Interface
Bahasa Pemrograman 3 Lab Bahasa Pemrograman 3
Membangun Aplikasi GUI
Mendapatkan input dari keyboard
Layout Managers and Event Handling
Pertemuan 7 : Perulangan for(….;….;…..)
Presented by : Ratri Enggar Pawening
KONSEP OOP DAN AWT [ RIO PRIANTAMA ].
Graphical User Interface (GUI)
KOMPONEN DALAM DELPHI Form
PROGRAM APLIKASI MOBILE EMHA TAUFIQ LUTHFI PERTEMUAN 5 (18 APRIL 2011)
Johannes Simatupang, MKom, Cobit5-F NIDN :
GUI event handling.
Pemrograman Berorientasi Objek
Pertemuan 12. Pemrograman Window Sejauh ini Anda melakukan pemrograman pada level konsul Java sesungguhnya juga mendukung pemrograman Window. Salah satu.
PROGRAM APLIKASI MOBILE EMHA TAUFIQ LUTHFI PERTEMUAN 4 (12 APRIL 2011)
Java GUI Container Pertemuan 2
Pengenalan Pemrograman Jaringan dengan GUI Materi 2
Dewi Kusumaningsih, M.Kom
Graphical User Interface
Pemrograman Berorientasi Obyek
JAVA GUI SWING Kelompok 4 : M.Fadli Rozak ( )
Implementasi Pemrograman Berorientasi Objek
KONSEP SWING.
MENGUASAI LAYOUT MANAGER
Graphical User Interface (GUI)
High Level User Interface
Pertemuan 10 GUI (Graphical User Interface)
KONSEP AWT.
Java GUI PBO.
Algoritma & PEMROGRAMAN 2B (Visual basic)
Java User Interface (Swing)
GUI Event Handling.
GUI Event Handling Alpro-2.
JFC dan Swing U Abd. Rohim, MT mailto:
Dasar Komputer & Pemrog. 2B
Struktur Kode Aplikasi Java (2)
Menggunakan Event dan Property
Matakuliah : M0864/Programming I
JAVA GUI (Graphical User Interface)
MIDlet User Interface (3)
MODUL PRATIKUM PEMOGRAMAN BERORIENTASI OBJEK (OOP)
Pemrograman Berorientasi Objek
Pertemuan 1 Pemrograman Visual Intro ‘n Delphi Intro
Graphical User Interface
GUI Event Handling Sussi.
Pemrograman Berorientasi Obyek
antarmuka grafis (GUI) dalam window
Pemrograman Berorientasi Obyek
Oleh : Rahmat Robi Waliyansyah, M.Kom.
Oleh : Rahmat Robi Waliyansyah, M.Kom.
Bahasa Pemrograman (Pemrograman Visual)
Bahasa Pemrograman (Pemrograman Visual)
Transcript presentasi:

GUI Event Handling

Event (kejadian) Event : kejadian yang muncul ketika user berinteraksi dengan aplikasi. Contoh : klik mouse klik tombol mouse bergerak di atas form memilih dari combo box/list klik kanan/kiri mouse di atas komponen, dll

Event Handling Proses untuk memberikan respon thd event. Di Java, mekanisme event handling dikenal dg Delegation of Event model.

Delegation of Event Model Interaksi antara user dan komponen GUI Untuk mendeskripsikan bagaimana program merespon interaksi user Bagian-bagian penting: event source event listener / Handler event object

Event Source Komponen GUI yang membuat event atau tempat terjadinya event. yaitu berupa komponen-komponen visual, seperti : button, combo box, text field, etc

Event Listener / Handler Objek penerima & pengolah event Menerima dan menangani event, mengandung business logic Contoh: menampilkan informasi penting ke user, melakukan komputasi matematis, dan lain sebagainya.

Event Object Objek yang terbentuk saat terjadi event Yaitu ketika user berinteraksi dengan komponen GUI. Seperti : tekan button, ketik di text field, dll. Mengandung semua informasi yang berhubungan dengan event yang muncul, seperti : Tipe event yang muncul, asal dari event tersebut. Direpresentasikan oleh class Event

Control Flow “Delegasi Event Model”

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 yang parameter sama dengan object event) Sekali listener menerima object event dari event source : mengartikan event memproses event yang muncul

Registrasi Listener Berdasarkan Event Source 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)

Komponen pada event handling Kelas untuk menangani event harus mengimplementasikan (kelas/interface) event listener. Cara lain adlh dg membuat kelas turunan dari kelas yang telah mengimplementasikan salah satu event listener. Kelas yang mengimplementasikan listener harus mengimplementasikan seluruh method yang ada di kelas/interface listener. Listener harus didaftarkan ke dalam objek yang akan berperan sbg event source.

Macam-macam Event Source Keterangan Button Membangkitkan ActionEvent pd saat button diklik Checkbox Membangkitkan ItemEvent pd saat di-check atau un-check Choice Membangkitkan ItemEvent pd saat pilihan diubah List Membangkitkan ActionEvent pd saat sebuah item di-doubleclick dan membangkitkan ItemEvent pd saat item dipilih/di-check maupun di-uncheck Item Menu Membangkitkan ActionEvent pd saat item menu diklik dan membangkitkan ItemEvent pd saat item menu di-check maupun di-uncheck Scrollbar Membangkitkan AdjustmentEvent pd saat scrollbar diubah Text Membangkitkan TextEvent pd saat user memasukkan karakter pd komponen textarea atau textfield Window Membangkitkan WindowEvent pd saat sebuah window atau frame diaktivasi, ditutup, dinonaktifkan, di-minimize, di-maximize, dibuka, dan dikeluarkan

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 Keterangan ActionEvent Dibangkitkan pada saat objek button di-klik, item list di-doubleclick, maupun item menu dipilih AdjustmentEvent Dibangkitkan pada saat objek scrollbar diubah ComponentEvent Dibangkitkan pada saat sebuah komponen disembunyikan, dipindahkan, diubah ukurannya, maupun diset mjd visible ContainerEvent Dibangkitkan pd saat sebuah komponen ditambahkan/dipiindahkan ke/dari sebuah container FocusEvent Dibangkitkan pada saat sebuah komponen memperole atau kehilangan fokus keyboard InputEvent Kelas induk yg mrpkn kelas abstrak dr semua kelas yg termsk ke dlm event input ItemEvent Dibangkitkan pd saat sebuah item dlm list atau checkbox diklik; jg tjd saat item-nya dibuat, dan pd saat item menu di-check maupun un-check KeyEvent Dibangkitkan pd saat input dilakukan melalui keyboard MouseEvent Dibangkitkan pd saat mouse di-drag, dipindahkan, diklik, ditekan, maupun dilepas; jg tjd pd saat mouse masuk atau keluar dari sebuah komponen TextEvent Dibangkitkan pd saat teks yg berada dalam komponen textarea atau textfield diubah WindowEvent Dibangkitkan pd saat window atau form diaktivasi, ditutup, di-minimize, di-maximize, dibuka, atau dikeluarkan

Event Listener Class yang mengimplementasi interface : <Type>Listener Berikut adalah daftar interfacenya:

Beberapa Interface Listener Tipe Event Keterangan ActionListener Mendefinisikan sebuah method untuk menangani tjdnya event ActionEvent void actionPerformed (ActionEvent e) MouseListener Mendefinisikan 5method untuk menangani tjdnya event MouseEvent void mouseClicked(MouseEvent e) void mouseEntered(MouseEvent e) void mouseExited(MouseEvent e) void mousePressed(MouseEvent e) void mouseReleased(MouseEvent e) WindowListener Mendefinisikan 7 method untuk menangani tjdnya event MouseEvent void windowActivated (WindowEvent e) void windowClosed (WindowEvent e) void windowClosing (WindowEvent e) void windowDeactivated (WindowEvent e) void windowDeiconified (WindowEvent e) void windowIconified (WindowEvent e) void windowOpened (WindowEvent e)

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 mouse 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 Event Handling Class Event Listener Registrasi Object Listener Override Method

Contoh Mouse Event

Contoh Mouse Event

Contoh Mouse Event

Contoh “Close Window” import java.awt.*; import java.awt.event.*; class CloseFrame extends Frame implements WindowListener { 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”

Contoh Event handling (2) import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; public class Swing3 extends JFrame implements ActionListener{ JComboBox cb; JLabel lb; String items[] = {"Acer", "Compaq", "Dell", "Fujitsu", "Sony", "Toshiba"}; public Swing3(String title){ super(title); setBounds(0, 0, 300, 170); getContentPane().setLayout(null); setResizable(false); setDefaultCloseOperation(EXIT_ON_CLOSE);

cb = new JComboBox(); for (int i=0; i<items.length; i++) cb.addItem(items[i]); cb.setLocation(30, 50); cb.setSize(cb.getPreferredSize()); lb = new JLabel("Program dimulai."); lb.setLocation(150, 50); lb.setSize(lb.getPreferredSize()); cb.addActionListener(this); getContentPane().add(cb); getContentPane().add(lb); setVisible(true); setLocationRelativeTo(null); }

public static void main(String[] args) { Swing3 frame = new Swing3("Demo JCombobox"); } @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == cb){ String s = ""+ cb.getSelectedItem(); lb.setText(s);

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 sebuah methodnya kosong

Class Adapter: Contoh “Close Window”

Class Adapter: Contoh “Close Window”

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

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