Graphical User Interface
Tujuan Mengetahui perbedaan AWT dan Swing Mengetahui kegunaan komponen-komponen aplikasi visual di Java Mampu menggunakan komponen-komponen Swing untuk membuat aplikasi visual Mampu membuat event handling di Java
AWT vs Swing AWT Swing Terdapat pada package java.awt Dikembangkan lebih awal Look and feel depend on OS Komponen terbatas Applet mudah dikenali browser Pada package javax.swing Dikembangkan setelah AWT Look and feel not depend on OS Komponen lebih bervariasi Tidak semua browser support applet dg Swing
Contoh program dg Swing
Macam-macam komponen Swing JFrame JLabel JButton JTextField JTextArea JCombobox Jlist JOptionPane JFileChooser, dll Tiap komponen memiliki properti yang digunakan untuk mengatur tampilan Untuk menggunakan salah satu, harus impor dari javax.swing
event handling (penanganan kejadian)
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 di Java dikenal dg delegation event model. Istilah2 pd mekanisme tsb : event source tempat terjadinya event yaitu komponen2 visual event listener : objek penerima & pengolah event event object : objek yg terbentuk saat tjd event
Delegation Event Model
Contoh Event Handling langkah 1 langkah 3 langkah 2
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.
Tipe-tipe event Tipe Event 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
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
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)
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);
Tugas