Graphical User Interface
Slide 2
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 Terdapat pada
package java.awt Dikembangkan lebih
awal Look and feel depend
on OS Komponen terbatas Applet mudah dikenali
browser
Swing Pada package
javax.swing Dikembangkan setelah
AWT Look and feel not
depend on OS Komponen lebih
bervariasi Tidak semua browser
support applet dg Swing
Slide 4
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)
Slide 7
Event (kejadian) Event : kejadian yang muncul ketika user
berinteraksi dengan aplikasi. Contoh :
klik mouseklik tombolmouse bergerak di atas formmemilih dari combo box/listklik kanan/kiri mouse di atas komponen,dll
Slide 8
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 sourcetempat terjadinya eventyaitu komponen2 visual
event listener : objek penerima & pengolah event
event object : objek yg terbentuk saat tjd event
Slide 9
Delegation Event Model
Slide 10
Contoh Event Handling
langkah 1
langkah 3
langkah 2
Slide 11
Komponen pada event handling
1. 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.
2. Kelas yang mengimplementasikan listener harus mengimplementasikan seluruh method yang ada di kelas/interface listener.
3. Listener harus didaftarkan ke dalam objek yang akan berperan sbg event source.
Slide 12
Tipe-tipe eventTipe 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
Slide 13
Macam-macam Event SourceEvent 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
Slide 14
Beberapa Interface ListenerTipe 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)
Slide 15
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);
Slide 16
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);
}
Slide 17
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);
}
}
}
Slide 18
Slide 19
Tugas