0% menganggap dokumen ini bermanfaat (0 suara)
2 tayangan36 halaman

Oop2 Awt

Diunggah oleh

Kuro Ouji
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
2 tayangan36 halaman

Oop2 Awt

Diunggah oleh

Kuro Ouji
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 36

PERTEMUAN 6

AWT & SWING


Obyektif Praktikum :
y Memahami persamaan dan perbedaan antara AWT dan Swing.
y Mendesain aplikasi GUI menggunakan AWT.
y Memahami action pada objek dalam Java.
y Mendesain aplikasi GUI menggunakan Swing.
y Perbedaan antara komponen dan kontainer.
y Menjelaskan tentang flow layout, border layout, dan grid layout dalam komponen GUI.

Pemrograman Berbasis Objek - 2011 1


DASAR GUI
y Program GUI (Graphical User Interface) merupakan metode pendesainan program ke dunia nyata
(real world) atau visual bukan dalam bentuk console. Paket yang dapat digunakan untuk
mengembangkan program-program GUI adalah AWT dan Swing.

y Paket AWT (Abstract Window Toolkit ) dan Swing


¾ AWT = sekumpulan library yang tidak tergantung pada platform
(platform independent) dan digunakan untuk menyederhanakan implementasi user interface.
¾ Swing = bentuk implementasi yang menambahkan komponen-komponen dalam sistem GUI
tetapi masih didasarkan pada arsitekstur AWT.

Pemrograman Berbasis Objek - 2011 2


Class pada AWT
y Window Classes Fundamental
Berikut ini adalah daftar dari beberapa class penting pada kontainer yang telah disediakan oleh AWT.

Pemrograman Berbasis Objek - 2011 3


PEMROGRAMAN DENGAN AWT

y Selain untuk pemrograman yang berbasis konsol, java juga mendukung pemrograman berbasiskan
GUI (Graphical User Interface), Salah satunya menggunakan AWT (Abstract Window Toolkit).

y Komponen-komponen AWT
¾ Button
Button merupakan kelas yang digunakan untuk memasang sebuah tombol pada window.
Bentuk Umum :
Button <nama objek>=new Button(<Text Button>);
¾ Label
Label adalah class pada java yang digunakan untuk menampilkan sebuah text pada window.
Bentuk umum :
Label <nama objek>=new Label(<Isi dari Text>);
¾ TextField
¾ CheckBox
¾ List, dll

Pemrograman Berbasis Objek - 2011 4


KOMPONEN GUI PADA AWT
y Grafik
Beberapa method grafik ditemukan dalam class Graphic. Dibawah ini adalah daftar dari beberapa
method.

Pemrograman Berbasis Objek - 2011 5


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

Output :

Pemrograman Berbasis Objek - 2011 6


PEMROGRAMAN SWING

y Komponen - Komponen Swing


¾ 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.
y Container adalah jenis komponen yang ”menampung” dan mengelola komponenkomponen lainnya.
Agar suatu komponen dapat digunakan, biasanya harus diletakkan di sebuah container.
y Pengaturan tata letak komponen :
¾ FlowLayout
¾ GridbagLayout
¾ BorderLayou
¾ BoxLayout
¾ SpringLayout
¾ CardLayout

Pemrograman Berbasis Objek - 2011 7


CONTOH PROGRAM SEDERHANA MENGGUNAKAN 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)
{ Output :
Swing sw=new Swing();
}
}

Pemrograman Berbasis Objek - 2011 8


LAYOUT MANAGER
y FlowLayout Manager
FlowLayout Manager adalah default manager untuk class JPanel dan subclassnya.
Berikut adalah bagaimana FlowLayout Manager bekerja, dimana memiliki tiga constructor seperti
daftar di bawah ini:
y FlowLayout Constructors
1. FlowLayout()
Membuat object baru FlowLayout dengan posisi di tengah dan lima unit horizontal dan
vertikal gap dimasukkan pada komponen sebagai default.
2. FlowLayout(int align)
Membuat object baru FlowLayout dengan posisi spesifik dan lima unit horizontal dan
vertikal gap dimasukkan pada komponen sebagai default.
3. FlowLayout(int align, int hgap, int vgap)
Membuat object baru FlowLayout dengan argumen pertama sebagai posisi pada
komponen dan hgap untuk horizontal dan vgap untuk vertikal pada komponen Gap
dapat dikatakan sebagai jarak antara komponen dan biasanya diukur dengan satuan pixel.
Posisi argumen mengikuti penulisan sebagai berikut :
1. FlowLayout.LEFT
2. FlowLayout.CENTER
3. FlowLayout.RIGHT

Pemrograman Berbasis Objek - 2011 9


Contoh Program FlowLayout Manager

import java.awt.FlowLayout;
import javax.swing.*;
class FlowLayoutDemo extends JFrame {
public static void main(String args[]) {
FlowLayoutDemo fld = new FlowLayoutDemo();
fld.setLayout(new FlowLayout(FlowLayout.RIGHT, 10, 10));
fld.add(new JButton("ONE"));
fld.add(new JButton("TWO"));
fld.add(new JButton("THREE"));
fld.setSize(100, 100);
fld.setVisible(true);
}
}

Pemrograman Berbasis Objek - 2011 10


y BorderLayout Manager
BorderLayout membagi kontainer menjadi lima bagian diantaranya utara, selatan, timur, barat, dan
tengah.

y Constructor BorderLayout
1. BorderLayout()
Membuat object BorderLayout baru tanpa spasi yang diaplikasikan diantara
komponen yang berbeda.
2. BorderLayout(int hgap, int vgap)
Membuat object BorderLayout baru dengan spasi unit hgap horizontal dan unit vgap
vertikal yang diaplikasikan diantara komponen yang berbeda.
Berikut ini adalah daftar dari kelima region.
1. BorderLayout.NORTH
2. BorderLayout.SOUTH
3. BorderLayout.EAST
4. BorderLayout.WEST
5. BorderLayout.CENTER

Pemrograman Berbasis Objek - 2011 11


Contoh Program Borderlayout Manager
import java.awt.BorderLayout;
import javax.swing.*;
class BorderLayoutDemo extends JFrame {
public static void main(String args[]) {
BorderLayoutDemo bld = new BorderLayoutDemo();
bld.setLayout(new BorderLayout(10, 10)); //may remove
bld.add(new JButton("NORTH"), BorderLayout.NORTH);
bld.add(new JButton("SOUTH"), BorderLayout.SOUTH);
bld.add(new JButton("EAST"), BorderLayout.EAST);
bld.add(new JButton("WEST"), BorderLayout.WEST);
bld.add(new JButton("CENTER"), BorderLayout.CENTER);
bld.setSize(200, 200);
bld.setVisible(true);
}
}

Pemrograman Berbasis Objek - 2011 12


y GridLayout Manager
GridLayout manager membagi kontainer menjadi baris dan kolom. Semua region memiliki ukuran
yang sama.
Berikut ini adalah daftar dari constructor untuk class GridLayout.
y Constructor GridLayout
1. GridLayout()
Membuat object GridLayout baru dengan satu baris dan satu kolom sebagai default
2. GridLayout(int rows, int cols)
Membuat object GridLayout baru dengan jumlah baris dan kolom sesuai dengan
keinginan
3. GridLayout(int rows, int cols, int hgap, int vgap)
Membuat object GridLayout baru dengan jumlah baris dan kolom yang ditentukan. Unit
spasi hgap horizontal dan vgap vertikal diaplikasikan ke dalam komponen.

Pemrograman Berbasis Objek - 2011 13


Contoh Program Gridlayout Manager
import java.awt.*;
class GridLayoutDemo extends Frame {
public static void main(String args[]) {
GridLayoutDemo gld = new GridLayoutDemo();
gld.setLayout(new GridLayout(2, 3, 4, 4));
gld.add(new Button("ONE"));
gld.add(new Button("TWO"));
gld.add(new Button("THREE"));
gld.add(new Button("FOUR"));
gld.add(new Button("FIVE"));
gld.setSize(200, 200);
gld.setVisible(true);
}
}

Pemrograman Berbasis Objek - 2011 14


JBUTTON, JLABEL DAN JTEXTFIELD
y JLabel
JLabel merupakan komponen yang digunakan untuk menampilkan teks yang pendek atau gambar
atau keduanya. Komponen Label memiliki konstruktor sebagai berikut :

Pemrograman Berbasis Objek - 2011 15


Contoh Program Menggunakan JLabel
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();
}
}
Output :

Pemrograman Berbasis Objek - 2011 16


JBUTTON, JLABEL DAN JTEXTFIELD
y 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 :

Pemrograman Berbasis Objek - 2011 17


Contoh Program Menggunakan JButton
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();
}
}
Output :

Pemrograman Berbasis Objek - 2011 18


JBUTTON, JLABEL DAN JTEXTFIELD
y JTextField
JTextField merupakan objek yang berguna untuk memasukkan atau mengedit data satu baris.
Komponen JTextField memiliki konstruktor sebagai berikut :

Pemrograman Berbasis Objek - 2011 19


Contoh Program Menggunakan JLabel

Pemrograman Berbasis Objek - 2011 20


PENANGANAN KEJADIAN
y Penanganan kejadian atau ActionEvent pada java merupakan suatu cara untuk berinteraksi antara
program dengan user.
y Tabel berikut memperlihatkan beberapa event dan event listener yang umumnya diperlukan dalam
aplikasi :

y Pada paket ini dapat digunakan oleh komponen AWT maupun SWING, agar objek dapat menangani
suatu kejadian, objek tersebut harus didaftarkan sebagai listener.
y Contohnya adalah sebagai berikut :
JButton But = new JButton(“Kirim”);
But.addActionListener(this);

Pemrograman Berbasis Objek - 2011 21


CONTOH PROGRAM 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);}
}

Pemrograman Berbasis Objek - 2011 22


Latihan Program
Berikut ini adalah contoh program sederhana menginput dan menampilkan data dengan swing -awt.
Ikutilah langkah-langkah berikut :
Step 1 :
Buka dan ketikan program pada teks editor notepad++ Anda.
y Simpan nama file pertama sama seperti nama classnya, yaitu Travel.java
Misal disimpan pada direktori D Æ folder “praktikan” Æ Travel.java
y Ketikkan program berikut pada teks editor Anda.
//import fungsi untuk menggunakan perintah swing dan awt
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import java.awt.Font;
import java.awt.Color;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent ;
import java.awt.event.ItemListener;
import java.awt.event.ItemEvent ;

Pemrograman Berbasis Objek - 2011 23


//dekarasi class turunan Jframe dan implementasi dari ActionListener
class tampilan extends JFrame implements ActionListener
{ *deklarasikan variabel ht,sub,jum bertipe integer, variabel disc dan total bertipe double.
Semua variabel tersebut bersifat private
...................
...................
//deklarasi variabel array item bertipe string berikut isinya
private String[] item = {"","Jakarta","Cirebon","Tasikmalaya"};
//buat gui yang dibutuhkan seperti combobox, label, checkbox, textfield
private JComboBox tuj = new JComboBox(item);
private JLabel judul = new JLabel("Program Travel Bintang Kejora");
private JLabel nama = new JLabel("Nama");
private JLabel tujuan = new JLabel("Tujuan");
private JLabel jumlah = new JLabel("Jumlah Tiket");
private JLabel member = new JLabel("Member");
private JCheckBox cb = new JCheckBox ("Ya");
private JLabel harga = new JLabel("Harga Tiket");
private JLabel sub_t = new JLabel("Sub Total");
private JLabel diskon = new JLabel("Diskon");
private JLabel t_harga = new JLabel("Total Harga");
private JTextField txtnama = new JTextField();
private JTextField txtujumlah = new JTextField();
private JTextField txtharga = new JTextField();
private JTextField txtsub = new JTextField();

Pemrograman Berbasis Objek - 2011 24


private JTextField txtdiskon = new JTextField();
private JTextField txttotal = new JTextField();
*buat 2 button bernama dan berlabel hitung dan ulangi bersifat private
..............
..............

tampilan() //deklarasi method


{//isi var super
super("Program Travel Created By Andriyan");
//perintah untuk menutup frame/keluar program
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
*menentukan lokasi (100,100), ukuran (495,250) dan layout (null)
.................
.................
.................
//memberi nama gui
add(judul); add(nama); add(txtnama); add(tujuan); add(tuj); add(jumlah);
add(txtujumlah); add(member); add(cb); add(harga); add(txtharga);
add(sub_t); add(txtsub); add(diskon); add(txtdiskon); add(t_harga);
add(txttotal); add(hitung); add(ulangi);
//setting teks
judul.setFont(new Font("Times New Roman",Font .BOLD,20));
judul.setBounds(10,10,300,20);

Pemrograman Berbasis Objek - 2011 25


nama.setBounds(10,50,100,20);
txtnama.setBounds(120,50,100,20);
tujuan.setBounds(10,75,100,20);
tuj.setBounds(120,75,100,20);
jumlah.setBounds(10,100,100,20);
txtujumlah.setBounds(120,100,100,20);
member.setBounds(10,125,100,20);
cb.setBounds(115,125,100,20);
harga.setBounds(260,50,100,20);
txtharga.setBounds(370,50,100,20);
sub_t.setBounds(260,75,100,20);
txtsub.setBounds(370,75,100,20);
diskon.setBounds(260,100,100,20);
txtdiskon.setBounds(370,100,100,20);
t_harga.setBounds(260,125,100,20);
txttotal.setBounds(370,125,100,20);
hitung.setBounds(130,175,100,20);
ulangi.setBounds(250,175,100,20);
//kirim action jika tombol diklik ke method ActionListener
tuj.addActionListener(this);
cb.addActionListener(this);
hitung.addActionListener(this);
ulangi.addActionListener(this);
setVisible(true); //perintah agar semua gui dapat ditampilkan
}
Pemrograman Berbasis Objek - 2011 26
//deklarasi method untuk menampilkan aksi jika tombol hitung diklik
public void actionPerformed(ActionEvent e)
{ //perintah untuk menentukkan harga tiket sesuai tujuan
String item = (String)tuj.getSelectedItem();
*buat seleksi if bersarang dengan kondisi :
jika tujuan Jakarta maka harga tiket 100000
jika tujuan Cirebon maka harga tiket 15000
jika tujuan Tasikmalaya maka harga tiket 20000
selain dari ketiga tujuan diatas maka harga tiket 0
...................
...................
...................
...................
Object obj= e.getSource();
if (obj == hitung)
{//perintah menghitung diskon dan total harga tiket
jum = Integer.parseInt(txtujumlah.getText());
sub = jum * ht ;
if (cb.isSelected())
if (cb.isSelected())
{disc = 0.10 * sub;}
else
{disc = 0.0;}
total = sub-disc;
Pemrograman Berbasis Objek - 2011 27
txtharga.setText("Rp. "+ht);
txtsub.setText("Rp. "+sub);
txtdiskon.setText("Rp. "+disc);
txttotal.setText("Rp. "+total);
}
//perintah jika tombol ulangi diklik maka semua inputan akan direset lagi.
if (obj == ulangi)
{
txtnama.setText("");
txtujumlah.setText("");
txtharga.setText("");
txtsub.setText("");
txtdiskon.setText("");
txttotal.setText("");
}
}
}
public class Travel //program utama
{
public static void main(String[] arg)
{
new tampilan(); //penggil method tampilan
}
}

Pemrograman Berbasis Objek - 2011 28


Step 2 :
Ikuti langkah berikut untuk meng-compile program yang telah Anda buat.
y Buka command prompt Anda.
y Masuk ke direktori dan folder tempat program tersebut disimpan.
Misal program disimpan pada direktori D Æ folder “praktikan”
Perintah masuk/pindah ke direktori D, ketik Î D:
Perintah masuk ke folder “praktikan”, ketik Î cd<spasi>praktikan
y Setelah masuk ke direktori dan folder yang dituju, untuk meng-compile program Anda ketikkan
perintah :
javac<spasi> Travel.java
Contoh :
javac TestVehicle.java
Step 3 :
Untuk menjalankan program yang telah Anda buat, ketikkan perintah :
java<spasi>NamaFile
Contoh :
java Travel

Pemrograman Berbasis Objek - 2011 29


Tampilan Output

Pemrograman Berbasis Objek - 2011 30


Koreksi Latihan Program
//import fungsi untuk menggunakan perintah swing dan awt
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import java.awt.Font;
import java.awt.Color;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent ;
import java.awt.event.ItemListener;
import java.awt.event.ItemEvent ;

Pemrograman Berbasis Objek - 2011 31


class tampilan extends JFrame implements ActionListener
{
private int ht,sub,jum;
private double disc,total;
private String[] item = {"","Jakarta","Cirebon","Tasikmalaya"};
private JComboBox tuj = new JComboBox(item);
private JLabel judul = new JLabel("Program Travel Bintang Kejora");
private JLabel nama = new JLabel("Nama");
private JLabel tujuan = new JLabel("Tujuan");
private JLabel jumlah = new JLabel("Jumlah Tiket");
private JLabel member = new JLabel("Member");
private JCheckBox cb = new JCheckBox ("Ya");
private JLabel harga = new JLabel("Harga Tiket");
private JLabel sub_t = new JLabel("Sub Total");
private JLabel diskon = new JLabel("Diskon");
private JLabel t_harga = new JLabel("Total Harga");
private JTextField txtnama = new JTextField();
private JTextField txtujumlah = new JTextField();
private JTextField txtharga = new JTextField();
private JTextField txtsub = new JTextField();
private JTextField txtdiskon = new JTextField();
private JTextField txttotal = new JTextField();
private JButton hitung = new JButton("Hitung");
private JButton ulangi = new JButton("Ulangi");

Pemrograman Berbasis Objek - 2011 32


tampilan()
{
super("Program Travel Created By Andriyan");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocation(100,100);
setSize(495,250);
setLayout(null);
add(judul); add(nama); add(txtnama); add(tujuan); add(tuj); add(jumlah);
add(txtujumlah); add(member); add(cb); add(harga); add(txtharga);
add(sub_t); add(txtsub); add(diskon); add(txtdiskon); add(t_harga);
add(txttotal); add(hitung); add(ulangi);
judul.setFont(new Font("Times New Roman",Font .BOLD,20));
judul.setBounds(10,10,300,20);
nama.setBounds(10,50,100,20);
txtnama.setBounds(120,50,100,20);
tujuan.setBounds(10,75,100,20);
tuj.setBounds(120,75,100,20);
jumlah.setBounds(10,100,100,20);
txtujumlah.setBounds(120,100,100,20);
member.setBounds(10,125,100,20);
cb.setBounds(115,125,100,20);
harga.setBounds(260,50,100,20);
txtharga.setBounds(370,50,100,20);

Pemrograman Berbasis Objek - 2011 33


sub_t.setBounds(260,75,100,20);
txtsub.setBounds(370,75,100,20);
diskon.setBounds(260,100,100,20);
txtdiskon.setBounds(370,100,100,20);
t_harga.setBounds(260,125,100,20);
txttotal.setBounds(370,125,100,20);
hitung.setBounds(130,175,100,20);
ulangi.setBounds(250,175,100,20);
tuj.addActionListener(this);
cb.addActionListener(this);
hitung.addActionListener(this);
ulangi.addActionListener(this);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
String item = (String)tuj.getSelectedItem();
if (item.equals("Jakarta"))
{ht = 100000;}
else if (item.equals("Cirebon"))
{ht = 15000;}
else if (item.equals("Tasikmalaya"))
{ht = 20000;}

Pemrograman Berbasis Objek - 2011 34


else
{ht = 0;}
Object obj= e.getSource();
if (obj == hitung)
{
jum = Integer.parseInt(txtujumlah.getText());
sub = jum * ht ;
if (cb.isSelected())
if (cb.isSelected())
{disc = 0.10 * sub;}
else
{disc = 0.0;}
total = sub-disc;
txtharga.setText("Rp. "+ht);
txtsub.setText("Rp. "+sub);
txtdiskon.setText("Rp. "+disc);
txttotal.setText("Rp. "+total);
}
if (obj == ulangi)
{
txtnama.setText("");
txtujumlah.setText("");
txtharga.setText("");
txtsub.setText("");

Pemrograman Berbasis Objek - 2011 35


txtdiskon.setText("");
txttotal.setText("");
}
}
}

public class Travel //program utama


{
public static void main(String[] arg)
{
new tampilan();
}
}

Pemrograman Berbasis Objek - 2011 36

Anda mungkin juga menyukai