• Tidak ada hasil yang ditemukan

PERTEMUAN 6 AWT & SWING

N/A
N/A
Protected

Academic year: 2021

Membagikan "PERTEMUAN 6 AWT & SWING"

Copied!
36
0
0

Teks penuh

(1)

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.

(2)

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

(3)

Class pada AWT

y

Window Classes Fundamental

(4)

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

(5)

KOMPONEN GUI PADA AWT

y

Grafik

Beberapa method grafik ditemukan dalam class Graphic. Dibawah ini adalah daftar dari beberapa

method.

(6)

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

}

(7)

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

(8)

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

Swing sw=new Swing(); }

}

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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.

(14)

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

(15)

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 :

(16)

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

(17)

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.

(18)

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

(19)

JBUTTON, JLABEL DAN JTEXTFIELD

y

JTextField

JTextField merupakan objek yang berguna untuk memasukkan atau mengedit data satu baris.

Komponen JTextField memiliki konstruktor sebagai berikut :

(20)
(21)

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

(22)

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

(23)

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;

(24)

//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");

(25)

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

(26)

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

(27)

//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

(28)

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

(29)

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 :

(30)
(31)

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 ;

(32)

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

(33)

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

(34)

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

(35)

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

(36)

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

} }

public class Travel //program utama {

public static void main(String[] arg) {

new tampilan(); }

Referensi

Dokumen terkait

Tujuan penelitian ini adalah Menganalisa hubungan depresi dengan kadar [9] gula darah acak pada penderita Diabetes Mellitus tipe 2 di Ruang Dahlia RSUD Jombang.. Desain penelitian

Tujuan penelitian ini dilakukan adalah untuk menentukan kadar air dan besar bilangan penyabunan dalam minyak kelapa serta menentukan apakah kadar air dan bilangan penyabunan

The main objectives of this study are the (1) measurement and mapping of the spatial distribution of the deformation rates in the study area; (2) analysis of

Sistem penilaian dengan system KPI, selain dapat mengukur kinerja orang per orang, juga bisa dilakukan untuk melakukan pengukuran kinerja secara kelompok, baik itu

Dengan menggunakan Akibat 2.3 ini, dapat dikonstruksi sebuah aljabar graf pada graf- berhingga baris tanpa sources seperti halnya pada graf berarah, dinotasikan dengan

Level 3 ini aktor harus memakan lebih banyak keju dan dihadapkan dengan musuh yang lebih banyak maka dari itu pada level 3 ini pemain harus lebih berhati-hati

informasi manajemen rumah sakit adalah suatu sistem berbasis komputer yang.. menghasilkan sekumpulan informasi yang telah diolah dan saling

Pada tahap pelaksanaan, kegiatan pembelajaran dibagi menjadi tiga bagian yaitu kegiatan awal, kegiatan inti dan kegiatan penutup. Pada kegiatan awal dimulai dengan