Kamis, 25 Juni 2009

Pemrograman Java berbasis GUI dengan swing dan AWT

Apakah sebenarnya swing dan AWT itu?? Makanan apa tuch..??,,Klo masih terdengar asing maka akan saya jelaskan. Singkatnya swing dan AWT (Abstract Window Toolkit) adalah penyedia komponen window/GUI (Graphical User Interface) pada java. Kalo anda orang yang sangat awam..awam..awam mengenai ini, bahasa bego-nya swing dan AWT adalah komponen pada java untuk membuat tampilan grafis. Kalo g ngerti juga silahkan kursus dulu di tempat-tempat kursus terdekat.. :p
Okeh, saya gkan berlama-lama menyesatkan anda pada semua tetek bengek teori bahasa Java yg mungkin membingungkan anda. Saya akan mencoba menjelaskan secara langsung dengan sebuah pembuatan program “Jendela Password”. Kayak gini nich tampilan outputnya :Dalam pembuatan program ini saya memakai :
  • Notepad ++, untuk text editor-nya. Yang lain juga bisa kaya notepad, edit plus, dll( yg simpel2 ajah).
  • Java Compiler(kudu/wajib ada!!!!), klo ga ada gimana mau buat program java, mas2/mbak2?? Untuk sekarang saya pake j2sdk1.4.2. Supaya bisa meng-compile Java di semua direktori, kita harus mengatur PATH-nya dulu (apa lagi ini!!!??). Sante ajach mas/mbak, gampank koq. Pertama klik kanan di My Computer > Properties.
Nanti langsung muncul jendela System Properties klik tab Advanced, di situ ada tombol Environment Variables, di klik trus muncul jendelanya.


Di jendela User Variables klik new, muncul jendela input New User Variables. Variable Name isi terserah yg kita mau, lalu Variable Value-nya diisi dengan direktori bin pada Java, misal defaultnya C:\j2sdk1.4.2\bin. Trus Tekan ok, ok, dan ok, restart deh. Gampank kan?? Udah gitu doank.

Yup pertama buka teks editornya lalu pilih menu File > Save As. Saya akan buat direktori baru C:\java.lat, simpan dengan nama PassFrame.java (nama File harus sama dengan nama public class-nya) di dalam direktori tersebut. Ketik program di bawah ini. baris yg ada tanda // cuma komentar :

import javax.swing.*; //pemanggilan seluruh kelas swing
import java.awt.*; //pemanggilan seluruh kelas awt
import java.awt.event.*; //pemanggilan kelas event yg berada dalam kelas awt

/**
author : mangkibo
date : 26 Mei 2009
**/

//mendefiniskan kelas PassFrame dengan perluasan JFrame pd komponen swing
public class PassFrame extends JFrame
{
//pendefinisian objek seperti JTextField, JButton, dan JLabel
JTextField inputID = new JTextField();
JTextField inputNama = new JTextField();
JPasswordField inputPass = new JPasswordField();
JButton jLogin = new JButton();
JButton jCancel = new JButton();
JLabel header = new JLabel();
JLabel id = new JLabel();
JLabel nama = new JLabel();
JLabel pass = new JLabel();

//membuat sebuah constructor untuk merancang kelas PassFrame
public PassFrame()
{
//mengatur posisi frame PassFrame
this.getContentPane().setLayout(null);

//mengatur objek yg di gunakan
//setFont = untuk mengatur format character yg dipakai
//setHorizontalAligment = untuk mengatur posisi text
//setText = untuk memberi/mengisi text
//setBounds = untuk mengatur posisi objek dalam frame
//pada setBounds(newRectangle(posisi x, posisi y, lebar, tinggi))

header.setFont(new java.awt.Font("Dialog", Font.BOLD, 14));
header.setHorizontalAlignment(SwingConstants.CENTER);
header.setText("PROGRAM PASSWORD PT UNTAL BERDJAYA");
header.setBounds(new Rectangle(15, 8, 350, 20));

id.setHorizontalAlignment(SwingConstants.LEFT);
id.setText("ID Pegawai :");
id.setBounds(new Rectangle(8, 40, 120, 20));

nama.setHorizontalAlignment(SwingConstants.LEFT);
nama.setText("Nama Pegawai :");
nama.setBounds(new Rectangle(8, 65, 120, 20));

pass.setHorizontalAlignment(SwingConstants.LEFT);
pass.setText("Password :");
pass.setBounds(new Rectangle(8, 90, 120, 20));

inputID.setBounds(new Rectangle(125, 40, 250, 20));

inputNama.setBounds(new Rectangle(125, 65, 250, 20));

inputPass.setBounds(new Rectangle(125, 90, 250, 20));

jLogin.setBounds(new Rectangle(170, 120, 100,30));
jLogin.setHorizontalAlignment(SwingConstants.CENTER);
jLogin.setText("Login");

jCancel.setBounds(new Rectangle(275, 120, 100,30));
jCancel.setHorizontalAlignment(SwingConstants.CENTER);
jCancel.setText("Cancel");

//menampilkan objek
this.getContentPane().add(header);
this.getContentPane().add(id);
this.getContentPane().add(nama);
this.getContentPane().add(pass);
this.getContentPane().add(inputID);
this.getContentPane().add(inputNama);
this.getContentPane().add(inputPass);
this.getContentPane().add(jLogin);
this.getContentPane().add(jCancel);

addListener(); //memanggil kelas addListener
}

//kelas utama(main class)
public static void main(String [] args)
{
//pengaturan frame PassFrame
//mendeklarasikan PassFrame menjadi sebuah variabel pFrame
//setTitle mengatur judul atau title frame
//setDefaultCloseOperation mengatur event default saat frame akan ditutup
//setSize mengatur lebar dan tinggi frame
//setLocation menentukan posisi frame
//show menampilkan frame
PassFrame pFrame = new PassFrame();
pFrame.setTitle("Form Password");
pFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pFrame.setSize(400, 200);
//mendapatkan ukuran dimensi layar monitor dari sistem
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
int panjang = (screen.width - pFrame.getSize().width) / 2;
int lebar = (screen.width - pFrame.getSize().height) / 2;
pFrame.setLocation(panjang, lebar);
pFrame.show();
}

//membuat kelas addListener
//kelas addListener di gunakan untuk pendefinisian metode
public void addListener()
{
//membuat event handling saat tombol jLogin di tekan
//metode event-nya adalah ActionEvent
jLogin.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jLogin_actionPerformed(e);
}
});

//membuat event handling saat tombol jCancel di tekan
//metode event-nya adalah ActionEvent

jCancel.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jCancel_actionPerformed(e);
}
});
}

//menentukan aksi dari event dari tombol jLogin
//event tersebut akan di tangkap oleh jLogin_actionPerformed
public void jLogin_actionPerformed(ActionEvent e)
{
//aksi saat tombol jLogin ditekan
//apabila textfield inputID diisi "1234", inputNama diisi "kampreto"
//inputPass diisi "lupa" maka akan muncul kotak pesan "Anda berhasil login"
if(inputID.getText().equals("1234") &&
inputNama.getText().equals("kampreto") &&
inputPass.getText().equals("lupa"))
{
JOptionPane.showMessageDialog(null, "Anda berhasil login");
}

//jika tidak akan keluar kotak pesan "Anda gagal login"
else
{
JOptionPane.showMessageDialog(null, "Anda gagal login!");
}
}

//menentukan aksi dari event dari tombol jCancel
//event tersebut akan di tangkap oleh jLogin_actionPerformed
public void jCancel_actionPerformed(ActionEvent e)
{
//aksinya adalah memunculkan kotak dialog "Anda telah keluar dari Program"
//dan keluar dari program
JOptionPane.showMessageDialog(null, "Anda telah keluar dari Program");
System.exit(0);
}
}


untuk mencoba isi ID, nama , dan passwordnya dengan :
ID : 1234
nama : kampreto
password : lupa

selamat mencoba!


Twitter Delicious Facebook Digg Favorites More