Anda di halaman 1dari 14

AWT DAN SWING

TUJUAN PRAKTIKUM

1. Praktikan mengenal pembuatan GUI pada Java.


2. Praktikan memahami action pada objek dalam Java.

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.

6.1 Pemrograman dengan AWT

Seperti yang disebutkan diatas pemrograman AWT menggunakan komponen yang


terdapat dalam paket java.awt.

Berikut ini adalah contoh program sederhana menggunakan AWT:

import java.awt.*;

public class AwtPertama

public static void main(String[] bowo)

{Frame win=new Frame(" Coba AWT");

win.setSize(300,200);

win.show();}

1
Hasilnya

Gambar 1.1 Contoh AWT

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. Sedangankan metode
setSize, digunakan untuk mengatur ukuran window, dan metode show digunakan untuk
menampilkan window.

Program diatas dapat di tulis dengan cara berbeda, yaitu dengan menurunkan sifat dari
Frame kepada class AwtPertama, seperti dibawah ini

import java.awt.*;

public class AwtPertama extends Frame


{
AwtPertama()
{
super("Coba AWT");
setSize(300,200);
show();
}

public static void main(String[] bowo)


{
AwtPertama obj=new AwtPertama();
}
}

2
6.1.1 Komponen-komponen AWT

AWT memilik beberapa komponen seperti Button, Label, TextField, CheckBox, List dan masih
banyak lagi, namun kali ini akan dibahas hanya Button dan Label saja.

6.1.1.1 Button

Button merupakan kelas yang digunakan untuk memasang sebuah tombol pada window kita,
bentuk umum penggunaan label adalah sebagai berikut:

Button <nama objek>=new Button(<Text Button>);

dan berikut contoh pembuatan tombol :

import java.awt.*;

public class TesButton extends Frame {


public static void main(String[] args) {
TesButton apl = new TesButton();
}
public TesButton() {
super("Tes Button");
setSize(300, 100);
Panel panelTombol = new Panel();
panelTombol.add(new Button("Perbesar"));
panelTombol.add(new Button("Selesai"));
add("South", panelTombol);

show();
}
}

Yang tercetak merah adalah pendeklarasia objekdari class Button,lalu Button tersebut diletakkan
pada sebuah panel dan ditempelkan pada window bagian bawah, berikut hasilnya

Gambar 1.2 Komponen Button

6.1.1.2 Label

Label adalah class pada java yang digunakan untuk menampilkan sebuah text pada
window, bentuk umum penggunaan Label adalah sebagai berikut :

3
Label <nama objek>=new Label(<Isi dari Text>);

contoh penggunaan label :

import java.awt.*;

public class TesButton extends Frame {


public static void main(String[] args) {
TesButton apl = new TesButton();
}
public TesButton() {
super("COBA LABEL");
setSize(300, 100);
Panel panelTombol = new Panel();
panelTombol.add(new Label("INI LABEL"));
add("South", panelTombol);
show();
}
}

Yang tercetak merah adalah pendeklarasian objek dari class Label,lalu Label tersebut diletakkan
pada sebuah panel dan ditempelkan pada window bagian bawah, berikut hasilnya

Gambar 1.3 Contoh Label

6.2 Pemrograman Swing

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();

4
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args)
{
Swing sw=new Swing();
}
}

HASILNYA :

Gambar 1.4 Contoh Swing

6.2.1 Komponen - Komponen 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 komponen-
komponen lainnya. Agar suatu komponen dapat digunakan, biasanya harus diletakkan di sebuah
container.
Komponen-komponen Swing dapat diklasifikasikan ke dalam 3 bagian yaitu:
1. Top-level container berfungsi untuk menyediakan ruang bagi komponen-komponen lainnya.
Container jenis ini terdiri atas JFrame, JWindow, Jdialog, dan Japplet.
2. Intermediate container komponen (non top-level) yang keberadaannya untuk menampung
komponen lainnya, misal panel, tabbed, dan tool bar.
3. Komponen Atomic (tunggal) berfungsi untuk menampilkan dan/atau menerima informasi.
Contohnya adalah text field, button, dan label.

5
Kali ini hanya membahas komponen atomic seperti JButton, JLabel dan JtextField, dengan
penjabaran sebagai berikut :
6.2.1.1 JLabel
JLabel merupakan komponen yang digunakan untuk menampilkan teks yang pendek
atau gambar atau keduanya. Komponen Label memiliki konstruktor sebagai berikut :

KONSTRUKTOR

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

Contoh JLabel :

Gambar 1.5 Gambar contoh JLabel

6
6.2.1.2. JButton

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 :

KONSTRUKTOR

JButton()

Menciptakan objek JButton tanpa gambar dan tanpa teks

JLabel(Icon gbr)

Menciptakan objek JButton dengan gambar tetapi tanpa teks

JLabel(String str)

Menciptakan objek JButton dengan teks tetapi tanpa gambar

JLabel(String str, Icon gbr)

Menciptakan objek JLabel dengan gambar dan teks.

Contoh dari JButton :

Gambar 1.6 Gambar Contoh Jbutton

7
6.2.1.3. JTextField

JTextField merupakan objek yang berguna untuk memasukkan atau mengedit data satu
baris.
Komponen JTextField memiliki konstruktor sebagai berikut :

KONSTRUKTOR

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

Contoh JTextField() :

Gambar 1.7 Gambar contoh JTextField

8
6.2.2 Pengaturan tata letak komponen

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(<nama objek>).

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()

6.3 Penanganan Kejadian

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,
ActionListener
atau memilih item menu
Menutup window WindowListener
Menekan button mouse saat kursor berada
MouseListener
diatas komponen
Memindahkan kursor MouseMotionListener
Menampilkan komponen ComponentListener
Komponen mendapat fokus FocusListener
Mengubah pemilihan tabel atau list ListSelectionListener

9
Penanganan kejadian yang digunakan dalam penulisan ini 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);

Dan penulisan isi respon dari objek ditulis pada metode void actionPerformed(ActionEvent e){}.
Contoh Penanganan Kejadian :

import javax.swing.*;
import java.awt.event.*;

class Coba extends JFrame implements ActionListener


{
JButton But = new JButton(“Kirim”);
but.addActionListener(this);
show();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==but){String kata="";
kata=jt.getText();

JOptionPane.showMessageDialog(null,kata);}
}

Program 1
Contoh program inputan dengan applet :
//nama file:InputDialog1.java
import javax.swing.JOptionPane;
class InputDialog1
{
public static void main(String[] args)
{
String nama;

nama = JOptionPane.showInputDialog("Ketik Nama anda : ");

System.out.println("Hello " + nama);


System.exit(0);
}
}

10
Catatan : Disini kita menggunakan template JoptionPane, yang memang digunakan
untuk menampilkan message box.

Program 2
// Nama File : GUIfak.java
//Nama Program : Program untuk menghitung nilai faktorial
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

class GUIfak extends JFrame implements ActionListener


{
double hasil;
Container con = new Container();
JButton hapus, ok;
JTextField tex1, tex2;

double fakt(double angka)


{
if(angka == 0)
{
return 1;
}
else
{
return angka*fakt(angka-1);
}
}
public GUIfak()
{
super("faktorial niy..!!");
setSize (300,250);
ok = new JButton ("faktorial");
hapus = new JButton ("hapus");
ok.addActionListener (this);
hapus.addActionListener (this);
JPanel tombol = new JPanel ();
hapus.setEnabled (false);
tombol.setLayout (new GridLayout(1,2,10,10));

11
tombol.add (hapus);
tombol.add(ok);

tex1 = new JTextField("");


tex2 = new JTextField("");
tex2.setEditable (false);
JPanel tex = new JPanel();
tex.setLayout(new GridLayout (2,1,10,10));
tex.add(tex1);
tex.add(tex2);
con = getContentPane();
con.setLayout(null);
tex.setBounds(100,80,100,50);
tombol.setBounds(50,150,200,30);
con.add(tombol);
con.add(tex);
show();
}

public void actionPerformed (ActionEvent e)


{
try
{
if (e.getSource()==ok)
{
hapus.setEnabled(true);
String a;
double angka = Double.parseDouble(tex1.getText());
hasil = fakt(angka);
}
tex2.setText(Double.toString(hasil));
if (e.getSource() == hapus)
{
tex1.setText("");
tex2.setText("");
hapus.setEnabled(false);
}
}

12
catch(Exception ex)
{
hapus.setEnabled(false);
JOptionPane.showMessageDialog(this, "Masukkan nilai yang
benar..!!");
}
}

public static void main(String[] Zzzz)


{
GUIfak q = new GUIfak();
q.setResizable(false);
q.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}

Penjelasan Program 2 :
Pada listing program diatas berisi konstruktor untuk kelas GUIfak(). Kelas GUI
memperluas kelas Frame(extends merupakan kata kunci untuk pewarisan. Kelas
Frame adalah komponen GUI yang mengimplementasikan jendela dengan bingkai.
Jendela tidak hanya berupa empat titik sudut dengan bingkai. Jendela juga
merupakan container yang dapat memuat komponen GUI lainnya. Oleh karena kita
perlu membuat komponen grafis lain dan menambahkannya ke frame dengan
metode add().
Mendeklarasikan variabel hasil dengan tipe double, hapu, ok menggunakan JButton
dan tex1, tex2 menggunakan JTextField. Terdapat fungsi fakt yang berisi proses
penghitungan factorial.
Kemudian mendesain tampilan yaitu membuat judul dan memberikan ukuran untuk
bingkai serta membuat tampilan teks, tombol. Kita juga menambahkan sesuatu yang
disebut panel yang digunakan untuk mengelompokkan komponen grafis bersama-
sama. Listing diatas menggunakan dua panel, satu untuk menyimpan dan
meletakkan tombol-tombol dan satu lagi untuk memuat informasi record. Panel
tombol dan panel tex menggunakan layout khusus yang disebut layout grid (baris,
kolom, range horizontal, range vertical). Dengan layout grid, anda dapat membuat
matriks dengan baris dan kolom yang membentuk sel berukuran sama, dan disinilah

13
komponen-komponen grafis di letakkan. Kita meletakkan field teks di dekat sel pada
grid dan tombol di bawah dari field teks. Field teks adalah komponen grafis yang
mengimplementasikan string teks yang dapat di edit. Container adalah komponen
yang menyimpan komponen-komponen lain lalu akan ditampilkan dengan
memanggil metode show() untuk menampilkan jendela beserta semua
komponennya.
Pada listing diatas, diprogram dengan model pemrograman event driven digunakan
untuk menerima pemilihan menu dan pemilihan tombol. Pada java, GUI anda dapat
menangkap kejadian dari system dengan menumpangi metode action performed()
parameternya action event. Kata kunci try digunakan untuk menentukan suatu blok
program yang harus di jaga terhadap semua eksepsi. Segera setelah blok
try,masukkan bagian catch yang menentukan tipe eksepsi yang ingin ditangkap.
Pada blok try berisi statement kondisi dimana jika ditekan tombol ok akan dilakukan
pemrosesan nilai yang dimasukkan dari tex1 tipe string diubah menjadi tipe double
untuk menghitung factorial dan ditampilkan di tex2 lalu jika ditekan tombol hapus
maka akan menghapus kedua teks. Bagian catch menangkap kesalahan dan akan
mencetak pesan untuk melakukan inputan kembali. Lalu program utama dimana
membuat objek q dan memanggil program.
OUTPUT :

STEP BY STEP

1. Sebutkan pemrograman yang digunakan untuk pembuatan GUI pada Java!


2. Sebutkan komponen AWT dan SWING!

14

Anda mungkin juga menyukai