Materi : GUI – AWT & SWING
http://luemut4n.0fees.net
Selain untuk pemrograman yang berbasis konsol, java juga mendukung pemrograman berbasiskan GUI (Graphical User Interface), Salah satunya menggunakan AWT (Abstract Window Toolkit), AWT merupakan cara untuk membuat pemrograman windows pada java, komponen komponen AWT terdapat dalam paket java.awt. Selain itu dapat juga menggunakan swing untuk pemrograman berbasis window, Swing merupakan cara lain selain AWT untuk mengimplementasikan pemrograman window. Swing dikemas dalam paket bernama javax.swing.
Berikut ini adalah contoh program sederhana menggunakan AWT: import java.awt.*; public class AwtPertama { public static void main(String[] args) {Frame win=new Frame(" Coba AWT"); win.setSize(300,200); win.show();} }
Pada program diatas dilakukan import terhadap java.awt.*, karena pada program diatas menggunakan komponen AWT. Untuk membentuk sebuah window, harus dibuat sebuah objek dari class Frame, program diatas objek win terbentuk dari class Frame. Sedangkan metode setSize, digunakan untuk mengatur ukuran window, dan metode show digunakan untuk menampilkan window.
Button merupakan kelas yang digunakan untuk memasang sebuah tombol pada window kita, bentuk umum penggunaan button adalah sebagai berikut: Button
=new Button();
Label adalah class pada java yang digunakan untuk menampilkan sebuah text pada window, bentuk umum penggunaan Label adalah sebagai berikut : Label =new Label();
Swing merupakan salah satu cara untuk mengimplementasikan pemrograman window pada java, beda swing dengan awt adalah bentuk komponen-komponen dari kelas swing sama bentuknya pada semua platform / sistem operasi. Contoh swing : import javax.swing.*; class Swing extends Jframe { Swing(){ super("INI SWING LHO..."); setSize(300,300); show(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) { Swing sw=new Swing(); } }
Dalam konteks antarmuka pengguna, komponen merupakan bagian fundamental di Java. Pada prinsipnya, segala sesuatu yang kita lihat di tampilan aplikasi Java adalah suatu komponen, seperti window, menu, dan button.
Container adalah jenis komponen yang ”menampung” dan mengelola komponenkomponen lainnya. Agar suatu komponen dapat digunakan, biasanya harus diletakkan di sebuah container. Komponen-komponen Swing dapat diklasifikasikan ke dalam 3 bagian yaitu:
◦ Top-level container berfungsi untuk menyediakan ruang bagi komponen-komponen lainnya. Container jenis ini terdiri atas JFrame, JWindow, Jdialog, dan Japplet. ◦ Intermediate container komponen (non top-level) yang keberadaannya untuk menampung komponen lainnya, misal panel, tabbed, dan tool bar. ◦ Komponen Atomic (tunggal) berfungsi untuk menampilkan dan/atau menerima informasi. Contohnya adalah text field, button, dan label.
JLabel merupakan komponen yang digunakan untuk menampilkan teks yang pendek atau gambar atau keduanya. Komponen Label memiliki konstruktor sebagai berikut :
◦ JLabel() Menciptakan objek JLabel tanpa gambar dan tanpa teks ◦ JLabel(Icon gbr) Menciptakan objek JLabel dengan gambar tetapi tanpa teks ◦ JLabel(String str) Menciptakan objek JLabel dengan teks tetapi tanpa gambar ◦ JLabel(String str, Icon gbr, int pengaturanHorizontal) Menciptakan objek JLabel dengan gambar dan teks serta diatur dengan pengaturan horizontal ◦ JLabel(String str, Icon gbr, int pengaturanVertikal) Menciptakan objek JLabel dengan gambar dan teks serta diatur dengan pengaturan vertikal
Kelas JButton berguna untuk membuat objek tombol yang dapat dilengkapi dengan judul tombol dan gambar, selain itu JButton merupakan komponen yang dapat menghasilkan suatu event jika tombol diklik oleh user. Komponen JButton memiliki konstruktor sebagai berikut : ◦ JButton()
Menciptakan objek JButton tanpa gambar dan tanpa teks
◦ JButton(Icon gbr)
Menciptakan objek JButton dengan gambar tetapi tanpa teks
◦ JButton(String str)
Menciptakan objek JButton dengan teks tetapi tanpa gambar
◦ JButton(String str, Icon gbr)
Menciptakan objek JButton dengan gambar dan teks.
JTextField merupakan objek yang berguna untuk memasukkan atau mengedit data satu baris. Komponen JTextField memiliki konstruktor sebagai berikut : ◦ JTextField()
Menciptakan objek JTextField baru tanpa nilai awal String
◦ JTextField(String str)
Menciptakan objek JButton dengan gambar tetapi tanpa teks
◦ JTextField(String str,int Kolom)
Menciptakan objek JButton dengan teks tetapi tanpa gambar
◦ JTextField( int Kolom)
Menciptakan objek JLabel dengan gambar dan teks.
◦ JTextField(Document doc, String str, int Kolom)
Menciptakan objek JButton dengan teks tetapi tanpa gambar
Pengaturan tata letak pada java dapat dilakukan dengan setlayout yaitu FlowLayout, GridbagLayout, BorderLayout, BoxLayout, SpringLayout dan CardLayout, selain itu bisa juga dengan metode setBounds(x,y,p,l). Dimana x dan y adalah koordinat, dan p adalah panjang objek dan l adalah lebar objek. Tetapi sebelum melakukannya, pastikan bahwa layout sudah dibuat null, dengan cara memanggil metode getContentPane().setLayout(null). Setelah itu komponen di tempel pada window dengan cara getContentPane().add(). Berikut contohnya : getContentPane().setLayout(null); but.setBounds(50,250,150,24); lb.setBounds(50,50,100,24); jt.setBounds(50,100,200,100); getContentPane().add(but); getContentPane().add(lb); getContentPane().add(jt); but.addActionListener(this); show()
Penanganan kejadian atau ActionEvent pada java merupakan suatu cara untuk berinteraksi antara program dengan user. Penanganan kejadian yang akan dibahas berikut ini adalah paket dari java.awt.event.* Tabel berikut memperlihatkan beberapa event dan event listener yang umumnya diperlukan dalam aplikasi.
Event
Event Listener
Klik button, menekan Enter di text field, atau memilih item menu
ActionListener
Menutup window
WindowListener
Menekan button mouse saat kursor MouseListener berada diatas komponen Memindahkan kursor
MouseMotionListener
Menampilkan komponen
ComponentListener
Komponen mendapat fokus
FocusListener
Mengubah pemilihan tabel atau list
ListSelectionListener
Penanganan kejadian yang digunakan adalah kelas yang terdapat pada paket java.awt.event. Sebelumnya pada penamaan class harus mengimplementasikan ActionListener. Pada paket ini dapat digunakan oleh komponen AWT maupun SWING, agar objek dapat menangani suatu kejadian, objek tersebut harus didaftarkan sebagai listener. Contohnya adalah sebagai berikut : JButton But = new JButton(“Kirim”); But.addActionListener(this);
Penulisan isi respon dari objek ditulis pada metode void actionPerformed(ActionEvent e){}.