MODUL PRAKTIKUM KE 8
A. Target Praktikum
Mahasiswa mengetahui struktur GUI (Graphical User Interface)
Mahasiswa mengetahui cara menggunakan layout dalam java
Mahasiswa
mampu
menyelesaikan permasalahan dengan
menggunakan
komponan GUI dan event listener.
B. Materi Dasar
GUI (Graphical User Interface)
Seperti yang telah disebutkan sebelumnya, GUI yaitu suatu model antar muka
computer yang menggunakan objekobjek grafis sebagai media interaksi dengan
user atau pengguna. Kali ini kita akan membahas tambahan dari modul 3.
Layout Management
Layout management yaitu suatu konsep untuk menata komponen di dalam suatu
area di dalam suatu area atau kontainer termasuk window (frame) .
Pemrograman java menyediakan beberapa layout sebagai berikut :
1. Null layout
Layout null memungkinkan kita dalam mengatur posisi ukuran komponen
sesuai dengan keinginan kita. Lihat contoh listing berikut :
import javax.swing.*;
import java.awt.*;
class nulllay extends JFrame { Button but1= new Button("proses 1"); Button but2= new Button("proses 2"); Button but3= new Button("proses 3"); nulllay() { super("PROGRAM NULL LAYOUT"); setLocation(200,200); setSize(200,120); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(null); add(but1); add(but2); add(but3); but1.setBounds(10,10,100,30); but2.setBounds(10,45,100,20); but3.setBounds(120,10,65,30); setVisible(true); } public static void main(String args[]) { new nulllay(); }}
2. Border Layout
Border Layout memandang bahwa sebuah container bisa dibagi menjadi 5
(lima) area sesuai dengan arah mata angin yaitu : center, east, north, south,
west. Berikut contoh listing :
import javax.swing.*; import java.awt.*; class border extends JFrame { Button but1= new Button("proses 1"); Button but2= new Button("proses 2"); Button but3= new Button("proses 3"); border() { super("PROGRAM BORDER LAYOUT"); setLocation(200,200); setSize(200,120); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(new BorderLayout()); add(but1); add(but2, BorderLayout.NORTH); add(but3, BorderLayout.WEST); setVisible(true); } public static void main(String args[]) { new border(); } }3. Flow Layout
Layout manager FlowLayout Meletakkan komponenkomponen dalam urutan
dari kiri ke kanan sebagaimana urutan ketika komponenkomponen itu
dimasukkan kedalam container. Berikut contoh listing :
import javax.swing.*; import java.awt.*; class theflow extends JFrame { Button but1= new Button("proses 1"); Button but2= new Button("proses 2"); Button but3= new Button("proses 3"); theflow () { super("PROGRAM FLOW LAYOUT"); setLocation(200,200); setSize(200,120); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(new FlowLayout()); add(but1); add(but2);add(but3); setVisible(true); } public static void main(String args[]) { new theflow (); } }
Selain 3 manajemen Layout diatas ada berbagai macam layout lagi didalam java.
Untuk tugas laporan carilah minimal 4 layout lagi dengan menggunakan bahasa
pemrograman java…..!!!
Menambah Atribut pada Komponen Windows
Didalam pembuatan aplikasi windows kita bisa menambahkan atribut
atribut yang mungkin bisa menambah daya tarik dari suatu aplikasi misalnya :
1. Warna.
2. Gambar ( gif, jpeg, jpg)
3. Bentuk atau jenis huruf ( font ).
1. Menambahkan warna pada komponen windows
Untuk menambahkan warna pada komponenn windows yang kita buat
kita perlu menambahkan statement yang di dalam java di kenali sebagai
penambah atribut warna.
Contoh ;
“
getContentPane().setBackground(Color.GREEN);
“
ini
untuk
memberikan warna pada frame yang kita buat.
“ bt.setBackground(Color.RED); “
Untuk memberikan warna pada
background komponen komponen lain selain frame dimana bt adalah nama
dari pembentukan objek yang dibuat berdasarkan komponen tersebut.
“ bt.setForeground(Color.GREEN); “
Untuk memberikan warna pada
tulisan yang ada pada komponen tersebut.
Penambahan warna berdasarkan statement diatas hanya berlaku untuk
warna sederhana.
“ bt.setForeground(new java.awt.Color(0, 0, 153)); “
“ bt.setBackground(new java.awt.Color(1,9,123)); “
Adalah untuk memberikan warna yang dapat kita sesuaikan tingkat
warnanya berdasarkan warna R,G,B.
Contoh :
import javax.swing.*; import java.awt.*; import java.awt.event.*; public class area extends JFrame { JTextArea nama=new JTextArea(10,10); JButton bt=new JButton("Copy");
JTextArea txnama=new JTextArea(10,10); JScrollPane Scrol = new JScrollPane(txnama); area() { super("INI ADALAH FORM"); setLocation(200,300); setSize(400,300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } void tampilan() { getContentPane().add(nama); nama.append("nama kamu siapa"); getContentPane().add(bt); bt.setForeground(new java.awt.Color(0, 0, 153)); bt.setBackground(new java.awt.Color(1,9,13)); bt.setBackground(Color.GRAY); bt.setForeground(Color.GREEN); getContentPane().add(Scrol); txnama.setBackground(Color.LIGHT_GRAY); bt.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { txnama.append(nama.getSelectedText()); } }); getContentPane().setLayout(new FlowLayout()); setVisible(true); } public static void main(String args[]) { area f=new area(); f.tampilan(); } }
2. Menambahkan gambar pada komponen windows
Untuk menambahkan gambar pada komponen windows kita bisa
menggunakan label yang didalamnya kita selipkan statement (“
new
ImageIcon("e.jpg")
”) untuk memanggil gambar tersebut. Syarat untuk
menambahkan sebuah gambar yang ditampilkan kedalam frame, gambar
tersebut harus berada didalam folder yang satu dengan letak source atau kelas
tersebut diletakkan (disimpan).
Contoh :
* Gambar pada label & Gambar pada Button
import javax.swing.*; import java.awt.*; import java.awt.event.*; public class gambar extends JFrame
{ JLabel lb=new JLabel(new ImageIcon("headset.png")); JButton bt=new JButton(new ImageIcon("headset.png")); gambar() { super("INI ADALAH FORM"); setLocation(200,300); setSize(320,180); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } void tampilan() { getContentPane().add(lb); getContentPane().add(bt); getContentPane().setLayout(new FlowLayout()); setVisible(true); } public static void main(String args[]) { gambar f=new gambar(); f.tampilan(); } }
3. Bentuk Huruf / Font
Untuk mengubah huruf yang ditampilkan pada frame kita mengunakan
cara menambahkan kalimat pada nama komponen yang akan kita ubah bentuk
font
atau
hurufnya
misal
seperti
berikut
ini
“cop.setFont(new
Font("Arial",Font.BOLD,20));”
Atau dapat menggunakan yang berikut ini
“ txnama.setFont(new java.awt.Font("Dialog", 1, 14)); “
Contoh :
import javax.swing.*; import java.awt.*; import java.awt.event.*; public class fon extends JFrame { JTextArea nama=new JTextArea(4,10); fon() { super("INI ADALAH FORM"); setLocation(200,300); setSize(220,190); setDefaultCloseOperation(JFrame.EX IT_ON_CLOSE); setVisible(true); } void tampilan() { getContentPane().add(nama); nama.append("nama kamu siapa"); nama.setFont(new Font("Monotype Corsiva",20,30));
// atau dengan nama.setFont(new java.awt.Font("Dialog", 1, 14)); getContentPane().setLayout(new FlowLayout()); setVisible(true); } public static void main(String args[]) { fon f=new fon(); f.tampilan(); } }
MEMBUAT APLIKASI BERBASIS WINDOWS II
JComboBox
ComboBox adalah komponen yang didalamnya berisi item atau pilihan yang
dapat kita pilih dengan cara mengambil nilai dari element yang telah ditetapkan di
dalamnya.
Contoh :
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class combo { public static void main(String[] args) { JFrame frame = new JFrame(); final JLabel lb=new JLabel(""); final String [] items = { " roti ", " Madu " }; final JComboBox comboBox = new JComboBox(items); JPanel pn=new JPanel(); frame.add(pn,BorderLayout.WEST); pn.add(comboBox,BorderLayout.CENTER); pn.add(lb,BorderLayout.NORTH); comboBox.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent ae) { String mn=(String)comboBox.getSelectedItem(); lb.setText(mn); } }); frame.setSize(200, 200); frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); frame.setVisible(true); } }
JCheckBox
JCheckBox adalah komponen yang berbentuk box (kotak) yang merupakan
pilihan dari suatu nilai atau keadaan dimana dimungkinkan untuk memilih lebih
dari satu pilihan secara bersaman akan tetapi bila checkbok itu di groupkan maka
ia hanya bisa di pilih satu dari beberapa pilihan cekbok.
Contoh cekbok dengan beberapa pilihan :
import javax.swing.*; import java.awt.*; import java.awt.event.*; class cekbok extends JFrame
{ JLabel cop1=new JLabel("PROGRAM PEMESANAN MAKANAN"); JLabel cop2=new JLabel("================================"); JLabel lmakan=new JLabel("Daftar Makanan"); JLabel lminum=new JLabel("Daftar Minuman"); JCheckBox goreng=new JCheckBox("Nasi goreng"); JCheckBox uduk=new JCheckBox("Nasi Uduk"); JCheckBox teh=new JCheckBox("Es Teh"); JCheckBox kopi=new JCheckBox("Kopi Racik"); cekbok() { super("PROGRAM MENGHITUNG ZAKAT"); setLocation(200,100); setSize(280,200); setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); } void objek() { getContentPane().setLayout(null); getContentPane().add(cop1); getContentPane().add(cop2); getContentPane().add(lmakan); getContentPane().add(lminum); getContentPane().add(goreng); getContentPane().add(uduk); getContentPane().add(teh); getContentPane().add(kopi); cop1.setBounds(40,20,300,20); cop2.setBounds(30,40,550,20); lmakan.setBounds(30,60,100,20); lminum.setBounds(150,60,100,20); goreng.setBounds(30,90,100,20); uduk.setBounds(30,120,100,20); teh.setBounds(150,90,100,20); kopi.setBounds(150,120,100,20); setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); setVisible(true); } public static void main(String args[]) { cekbok ZZ=new cekbok(); ZZ.objek(); } }
JRadioButton
JRadioButton adalah komponen yang berbentuk lingkaran yang merupakan pilihan
dari suatu nilai atau keadaan dimana hanya diperbolehkan untuk memilih tidak lebih dari
satu pilihan jika button tersebut di kelompokkan.
Contoh :
import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.border.*; import javax.swing.JButton; public class radioB extends JFrame { JRadioButton temuan=new JRadioButton("Zakat Temuan"); JRadioButton fitrah=new JRadioButton("Zakat Fitrah"); JRadioButton dagang=new JRadioButton("Perniagaan/Usaha"); ButtonGroup kelompok=new ButtonGroup(); radioB() { setLocation(50,110); setSize(300,200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } void tampilan() { getContentPane().setLayout(new FlowLayout()); getContentPane().add(temuan); getContentPane().add(fitrah); getContentPane().add(dagang); kelompok.add(temuan); kelompok.add(fitrah); kelompok.add(dagang); setVisible(true); } public static void main(String args[]) { radioB rb=new radioB(); rb.tampilan(); } }
JMenu
JMenu adalah komponen yang berupa kumpulan fungsi yang berhubungan dengan fitur
fitur yang terdapat pada suatu Aplikasi.
Dibagi atas beberapa yaitu:
1 JMenuBar adalah menu yang didalamnya yang bersifat klik down atau apabila menu
tersebut di klik maka akan muncul pilihan menu.
2 JMenu adalah komponen yang terdapat pada menuBar dimana ia merupakan objek
yang ada pada menubar.
3 JMenuItem adala menu yang berguna untuk menambah item (objek/pilihan) menu
pada menu.
Contoh :
import javax.swing.*; import java.awt.*; import javax.swing.table.*; import java.awt.event.*; import java.sql.*; class menunya extends JFrame { JMenuBar mb=new JMenuBar(); JMenu mn=new JMenu("File"); JMenu mn2=new JMenu("Open"); JRadioButton bt=new JRadioButton("buku"); JMenuItem mnt=new JMenuItem("Close"); JMenuItem unta=new JMenuItem("Unta"); menunya() { super("PROGRAM MENGHITUNG ZAKAT"); setLocation(200,100); setSize(400,350); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } void objek() { getContentPane().add(mb,BorderLayout.NORTH); mb.add(mn); mn2.add(bt); mn.add(mn2); mn.add(mnt); mn.add(unta); mb.setBounds(10,10,100,30); setVisible(true); } public static void main(String args[]) { menunya ZZ=new menunya(); ZZ.objek(); } }
MEMBUAT EVENT MENGGUNAKAN LISTENER
Event Listener adalah sebuah konsep untuk merespon kegiatan yang terjadi dalam
suatu objek. Event listener merupakan implementasi penyampaian message antar objek.
Objek yang mendapat massage akan melakukan suatu aksi yang telah ditentukan dalam
program. java menyediakan berbagai macam event listener, diantaranya sebagai berikut :
1. ActionListener
ActionListener merupakan event listener umum yang digunakan untuk merespon
suatu event yang terjadi pada objek. Berikut contoh list codenya :
import javax.swing.*; import java.awt.*; import java.awt.event.*;
class aksi1 extends JFrame implements ActionListener { Button but1= new Button("proses 1"); public aksi1() { super("PROGRAM BORDER LAYOUT"); setLocation(200,200); setSize(200,120); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); but1.addActionListener(this); setLayout(new FlowLayout()); add(but1); setVisible(true); } public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null, "objek menerima aksi... cips..."); } public static void main(String args[]) { new aksi1(); } }
2. KeyListener
Interface KeyLiastener akan memantau kondisi objek ketika objek tersebut mendapat
penekanan tombol keyboard hanya pada saat objek tersebut dalam keadaan focus.
Berikut contoh list codenya :
import javax.swing.*; import java.awt.*; import java.awt.event.*; class kiboard extends JFrame implements KeyListener { public kiboard() { super("PROGRAM BORDER LAYOUT"); setLocation(200,200); setSize(300,420); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); addKeyListener(this); setLayout(new FlowLayout()); add(new Label("tekan sembarang tombol untuk keluar")); setVisible(true); } public void keyPressed(KeyEvent e) { if(e.getKeyCode()==KeyEvent.VK_ESCAPE) System.exit(0); if(e.getKeyCode()==KeyEvent.VK_ALT) add(new Label("Anda telah menekan tombol \"&\"")); }public void keyReleased(KeyEvent e) { } public void keyTyped(KeyEvent e) { } public static void main(String args[]) { new kiboard(); } }