Rabu, 01 Desember 2010

Pemakaian Panel, BorderLayout dan GridLayout pada Java GUI AWT


Di bawah ini merupakan source code program untuk menghitung luas persegi panjang. Source code menyontohkan pemakaian Label, TextField, Panel, BorderLayout, dan GridLayout. Dibandingkan contoh program Java GUI AWT kalkulator culun dan program Java GUI AWT kalkukatrok, tampilan di program menghitung luas persegi panjang ini lebih rapi. Namun tetap saja ada kelemahan yang disebabkan oleh karakteristik GridLayout yaitu jika ukuran frame diubah maka ukuran komponen akan ikut berubah pula.

Secara garis besar, penggunaan Panel sebagai kontainer dilakukan dengan cara sbb :
  1. Di dalam konstruktor, buat objek Panel
  2. Dilanjutkan dengan memilih layout; GridLayout untuk objek Panel tersebut
  3. Tambahkan komponen-komponen pada objek Panel
  4. Ulangi langkah 1-3 untuk Panel kedua
  5. Nah, baru tambahkan Panel-Panel pada Frame dengan layout BorderLayout
Berikut source code selengkapnya :

import java.awt.*;
import java.awt.event.*;

public class Luas extends Frame implements ActionListener {
TextField txtPanjang, txtLebar, txtHasil;
Button btnHitung;
Label lblPanjang, lblLebar, lblHasil;
double hasil;

public Luas(String title) {
super(title);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
System.exit(1);
}
});

Panel panelWest = new Panel();
Panel panelCenter = new Panel();

panelWest.setLayout(new GridLayout(4, 1));
panelWest.add(lblPanjang = new Label("Panjang: "));
panelWest.add(lblLebar = new Label("Lebar: "));
panelWest.add(new Label());
panelWest.add(lblHasil = new Label("Luas: "));

panelCenter.setLayout(new GridLayout(4, 1));
panelCenter.add(txtPanjang = new TextField(""));
panelCenter.add(txtLebar = new TextField());
panelCenter.add(btnHitung = new Button("Hitung"));
panelCenter.add(txtHasil = new TextField());

btnHitung.addActionListener(this);

add(panelWest, BorderLayout.WEST);
add(panelCenter, BorderLayout.CENTER);

setSize(300, 150);
setVisible(true);
}

public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(btnHitung)) {
hasil = Double.parseDouble(txtPanjang.getText()) * Double.parseDouble(txtLebar.getText());
txtHasil.setText(""+hasil);
}
}

public static void main(String[] args) {
Luas frm = new Luas("Luas Persegi Panjang");
}
}
Yang belum ada pada program di atas, adalah proses validasi nilai yang diinput oleh user. Tambahin sendiri ya! :P

Tidak ada komentar: