MODUL PRAKTIKUM PERANCANGAN SISTEM II KELAS SWING ATAU GUI (GRAPHICAL USER INTERFACE) MODERN DISUSUN OLEH : Astrid Lestari Tungadi, S.Kom., M.TI. FAKULTAS TEKNOLOGI INFORMASI UNIVERSITAS ATMA JAYA MAKASSAR 2018
SWING Swing merupakan kelas yang mulai diperkenalkan pada JDK versi 1.2. Swing merupakan bagian dari Java Foundation Class (JFC), berupa perluasan dari objek GUI dengan fungsi dan kontrol baru yang lebih baik dari apa yang diperoleh dari kelas AWT. Swing pada hakikatnya merupakan hasil kerja sama dari Sun MicroSystem dengan beberapa perusahaan seperti Netscape, IBM, dan yang lain untuk memberi fasilitas GUI standar pada berbagai platform. Swing pada awalnya diilhami oleh kelas atau objek Internet yang dibuat oleh Netscape atau IFC (Internet Foundation Class), tetapi telah dikembangkan sedemikian rupa sehingga menjadi bagian dari JFC. AWT dibangun berdasarkan komponen native window sehingga menjadi antarmuka program Java dengan platform di mana GUI akan ditampilkan. Swing ditulis dalam bahasa Java murni, menggunakan antarmuka AWT untuk berkomunikasi dengan mesin, tetapi tidak menggunakan kelas AWT dalam membentuk objek. Walaupun demikian pada dasarnya objek Swing dan objek AWT bisa berkomunikasi. Kelas Swing dapat digunakan dengan menambahkan import javax.swing.*; di awal program. KOMPONEN SWING Komponen Swing jauh lebih banyak daripada komponen AWT. Ada 9 paket utama pada Swing dan puluhan bahkan ratusan kelas serta antarmuka. Semua nama komponen Swing dimulai dengan huruf J, misalnya JButton, JLabel, JComboBox, dan sebagainya. Beberapa komponen GUI adalah :
MENCIPTAKAN OBJEK SWING Cara menciptakan objek Swing sama dengan cara menciptakan objek AWT, misalnya sebagai berikut : JPanel buttonpanel = new JPanel(); JPanel barpanel = new JPanel(); JPanel listpanel = new JPanel(); Icon worldicon = new ImageIcon( world.gif ); Icon printericon = new ImageIcon( printer.gif ); JButton printerbutton = new JButton( Print, printericon); JToggleButton wrldbutton = new ToggleButton( Connect, worldicon, true); ContohJendela.java import javax.swing.jframe; /** * * @author alt */ public class ContohJendela public static void main(string[] args) JFrame frame = new JFrame("Contoh Window"); frame.setsize(300, 300); frame.setvisible(true); frame.setdefaultcloseoperation(jframe.exit_on_close);
InputPegawai.java import java.awt.checkboxgroup; import java.awt.container; import java.awt.gridbagconstraints; import java.awt.gridbaglayout; import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.buttongroup; import javax.swing.icon; import javax.swing.imageicon; import javax.swing.jbutton; import javax.swing.jcheckbox; import javax.swing.jcombobox; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.joptionpane; import javax.swing.jradiobutton; import javax.swing.jtextarea; import javax.swing.jtextfield; /** * * @author alt */ public class InputPegawai public static void main(string[] args) JFrame frame = new JFrame("Input Data Pegawai"); JLabel labelnama = new JLabel("Nama Lengkap"); JLabel titik = new JLabel(" : "); JLabel titik1 = new JLabel(" : "); JLabel titik2 = new JLabel(" : "); JLabel titik3 = new JLabel(" : "); JLabel titik4 = new JLabel(" : "); JLabel titik5 = new JLabel(" : "); JLabel titik6 = new JLabel(" : "); JLabel titik7 = new JLabel(" : "); JLabel labellahir = new JLabel("Tempat/Tanggal Lahir"); JLabel labelalamat = new JLabel("Alamat"); JLabel labelkota = new JLabel("Kota"); JLabel labeljenis = new JLabel("Jenis Kelamin"); JLabel labelskill = new JLabel("Skill"); JLabel labelpendidikan = new JLabel("Pendidikan"); JLabel labelpengalaman = new JLabel("Pengalaman Kerja");
JTextField fieldnama = new JTextField(20); JTextField fieldlahir = new JTextField(20); JTextField fieldalamat = new JTextField(50); JTextField fieldkota = new JTextField(20); JRadioButton radiopria = new JRadioButton("Pria", true); radiopria.setactioncommand( radiopria.gettext() ); JRadioButton radiowanita = new JRadioButton("Wanita"); radiowanita.setactioncommand( radiowanita.gettext() ); ButtonGroup jeniskelamin = new ButtonGroup(); jeniskelamin.add(radiopria); jeniskelamin.add(radiowanita); String[] pendidikan = "S1", "S2", "S3" ; JComboBox boxpendidikan = new JComboBox(pendidikan); JCheckBox skill1 = new JCheckBox("Skill 1"); JCheckBox skill2 = new JCheckBox("Skill 2"); JCheckBox skill3 = new JCheckBox("Skill 3"); JTextArea pengalaman = new JTextArea(5, 50); JTextArea hasil = new JTextArea(10, 50); hasil.seteditable(false); Icon save = new ImageIcon("image/save.png"); Icon delete = new ImageIcon("image/delete.png"); JButton tombolrekam = new JButton("Rekam", save); tombolrekam.setmnemonic('r'); tombolrekam.addactionlistener(new ActionListener() @Override public void actionperformed(actionevent e) boolean lanjut = true; if (fieldnama.gettext().equals("")) JOptionPane.showMessageDialog(frame, "Nama Masih Kosong!", "Rekam Data", JOptionPane.WARNING_MESSAGE); fieldnama.requestfocus(); lanjut = false; if (fieldalamat.gettext().equals(""))
JOptionPane.showMessageDialog(frame, "Alamat Masih Kosong!", "Rekam Data", JOptionPane.WARNING_MESSAGE); fieldalamat.requestfocus(); lanjut = false; if (lanjut == true) String varnama = fieldnama.gettext(); String varlahir = fieldlahir.gettext(); String varalamat = fieldalamat.gettext(); String varkota = fieldkota.gettext(); String varpendidikan = boxpendidikan.getselecteditem().tostring(); String varjeniskelamin = jeniskelamin.getselection().getactioncommand(); String varskill = ""; if (skill1.isselected()) varskill += skill1.gettext() + ", "; if (skill2.isselected()) varskill += skill2.gettext() + ", "; if (skill3.isselected()) varskill += skill3.gettext() + ", "; String varpengalaman = pengalaman.gettext(); String output = ""; output += "Nama \t\t : \t " + varnama + "\n"; output += "Tempat/Tanggal Lahir \t : \t " + varlahir + "\n"; output += "Alamat \t\t : \t " + varalamat + "\n"; output += "Kota \t\t : \t " + varkota + "\n"; output += "Jenis Kelamin \t\t : \t " + varjeniskelamin + "\n"; output += "Pendidikan \t\t : \t " + varpendidikan + "\n"; output += "Skill \t\t : \t " + varskill + "\n";
output += "Pengalaman Kerja \t : \t " + varpengalaman + "\n"; hasil.settext(output); ); JButton tombolhapus = new JButton("Hapus", delete); tombolhapus.setmnemonic('r'); tombolhapus.addactionlistener(new ActionListener() @Override public void actionperformed(actionevent e) fieldnama.settext(""); fieldalamat.settext(""); fieldlahir.settext(""); fieldkota.settext(""); jeniskelamin.clearselection(); boxpendidikan.setselectedindex(0); skill1.setselected(false); skill2.setselected(false); skill3.setselected(false); pengalaman.settext(""); fieldnama.requestfocus(); ); Container konten = frame.getcontentpane(); konten.setlayout(new GridBagLayout()); GridBagConstraints posisi = new GridBagConstraints(); posisi.anchor = GridBagConstraints.WEST; posisi.gridy = 0; konten.add(labelnama, posisi); konten.add(titik, posisi);
konten.add(fieldnama, posisi); konten.add(labellahir, posisi); konten.add(titik1, posisi); konten.add(fieldlahir, posisi); konten.add(labelalamat, posisi); konten.add(titik2, posisi); konten.add(fieldalamat, posisi); konten.add(labelkota, posisi); konten.add(titik3, posisi); konten.add(fieldkota, posisi); konten.add(labeljenis, posisi); konten.add(titik4, posisi);
konten.add(radiopria, posisi); konten.add(radiowanita, posisi); konten.add(labelpendidikan, posisi); konten.add(titik7, posisi); konten.add(boxpendidikan, posisi); konten.add(labelskill, posisi); konten.add(titik5, posisi); konten.add(skill1, posisi); konten.add(skill2, posisi); konten.add(skill3, posisi); konten.add(labelpengalaman, posisi); konten.add(titik6, posisi); konten.add(pengalaman, posisi);
posisi.gridx = 2; konten.add(tombolrekam, posisi); konten.add(tombolhapus, posisi); posisi.gridx = 2; konten.add(hasil, posisi); frame.pack(); frame.setvisible(true); frame.setdefaultcloseoperation(jframe.exit_on_close); LATIHAN 1. Buatlah program yang meminta user untuk memasukkan nilai uang dalam Rupiah, kemudian program secara otomatis akan menampilkan nilai konversi ke dalam mata uang Dollar, Euro, dan Poundsterling 2. Buatlah program kalkulator sederhana (operator tambah, kurang, kali, bagi berbentuk button) dengan 2 (dua) fieldtext. Program secara otomatis akan menampilkan hasil dari 2 nilai dan operator yang dipilih.