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(); } }
Selain 2 Event Listener diatas ada berbagai macam Event lagi didalam java. Untuk tugas laporan carilah minimal 7 Event Listener lagi dengan menggunakan bahasa pemrograman java…..!!! C. Tugas Praktikum 1. Buatlah program penilaian dalam suatu matakuliah. Seperti layout berikut :
Dari layout diatas silahkan dikembangkan sesuai kreatifitas masing2. Minimal ditambah teks area untuk mencetak data keseluruhan apabila ditekan tombol simpan. Dan exit untuk keluar. D. Tugas Laporan 1. Buatlah program penjualan dengan desain sedemikian rupa beserta aksinya. Program akan dinilai berdasarkan desain dan aksi yang ada didalamnya. 2. Selamat mengerjakan….!!!