Pertemuan 16 - Gui (Graphical User Interface) PDF
Pertemuan 16 - Gui (Graphical User Interface) PDF
Pertemuan XVI
GUI (GRAPHICAL USER INTERFACE)
Default dari JFrame adalah not visible atau tak tampak hingga kita harus mengatur
visibility menjadi true. Perintahnya adalah :
void setVisible(boolean b)
Dalam mendesain aplikasi GUI, Object Frame selalu digunakan. Dibawah ini adalah
contoh bagaimana membuat sebuah aplikasi.
import javax.swing.*;
public class TampilFrame extends JFrame{
public TampilFrame(){
super("Membuat Frame dengan JFrame");
setSize(350,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
page 1 of 21
Materi Pemrograman I (Pertemuan XVI) Universitas Pamulang
16.2.2. JPanel
JPanel digunakan untuk membuat sebuah panel yang berfungsi sebagai container
untuk menampung berbagai macam komponen, seperti label, button, textfield, table dan
lain-lain. Kode program dibawah ini adalah contoh untuk membuat panel, tetapi obyek
panelnya tidak terlihat, karena hanya sebagai penampung dan mengatur tata letak
komponen-komponen GUI.
import javax.swing.*;
public TampilPanel(){
super("Membuat Panel");
panelku.setLayout(null);
panelku.setSize(150,200);
setSize(350,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
getContentPane().add(panelku);
setVisible(true);
}
page 2 of 21
Materi Pemrograman I (Pertemuan XVI) Universitas Pamulang
16.2.3. JLabel
JLabel digunakan untuk menampilkan teks yang berfungsi untuk memberikan
keterangan atau menjelaskan komponen GUI lainnya agar mudah dimengerti oleh user.
Contoh program untuk menampilkan JLabel adalah sebagai berikut :
import javax.swing.*;
TampilLabel(){
super("Membuat Label");
panelku.setLayout(null);
setSize(350,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
labelku.setBounds(60,20,160,25);
panelku.add(labelku);
getContentPane().add(panelku);
setVisible(true);
}
16.2.4. JTextField
JTextField adalah komponen GUI yang biasa digunakan untuk memasukkan data
dengan mengetik dari keyboard. Kode program dibawah ini adalah contoh untuk
membuat JTextField :
import javax.swing.*;
public class TampilTextField extends JFrame{
private JPanel panelku = new JPanel();
private static JTextField TxtNama = new JTextField();
TampilTextField(){
super("Membuat TextField");
page 3 of 21
Materi Pemrograman I (Pertemuan XVI) Universitas Pamulang
panelku.setLayout(null);
setSize(350,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
TxtNama.setBounds(60,20,160,25);
panelku.add(TxtNama);
getContentPane().add(panelku);
setVisible(true);
}
16.2.5. JButton
JButton digunakan untuk membuat sebuah tombol yang berfungsi untuk menerima
input dari user berupa klik menggunakan mouse atau tombol enter dari keyboard.
Contoh program untuk menampilkan JButton adalah sebagai berikut :
import javax.swing.*;
public class TampilTombol extends JFrame{
private JPanel panelku = new JPanel();
private static JButton Tombol = new JButton("Tombol");
TampilTombol(){
super("Membuat Tombol");
panelku.setLayout(null);
setSize(350,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
Tombol.setBounds(130,90,80,25);
panelku.add(Tombol);
getContentPane().add(panelku);
setVisible(true);
}
page 4 of 21
Materi Pemrograman I (Pertemuan XVI) Universitas Pamulang
16.2.6. JComboBox
JComboBox merupakan sebuah kelas pada swing yang berguna untuk membuat
sebuah ComboBox. ComboBox biasanya digunakan untuk menampilkan daftar item
sebagai pilihan untuk user. Berikut ini adalah kode program untuk menampilkan
JComboBox :
import javax.swing.*;
public class TampilComboBox extends JFrame{
final static String Pilihan[] = {"Pilihan ke-1","Pilihan ke-2",
"Pilihan ke-3"};
private JPanel panelku = new JPanel();
private static JComboBox ComboBox = new JComboBox(Pilihan);
TampilComboBox(){
super("Membuat ComboBox");
panelku.setLayout(null);
setSize(350,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
ComboBox.setBounds(90,70,150,25);
panelku.add(ComboBox);
getContentPane().add(panelku);
setVisible(true);
}
page 5 of 21
Materi Pemrograman I (Pertemuan XVI) Universitas Pamulang
16.2.7. JMenu
JMenu digunakan untuk membuat menu pull-down yang dapat digunakan untuk
memanggil suatu form. Suatu menu biasa terdiri dari beberapa bagian, seperti menu
induk, submenu dan menu item. Untuk membuat menu secara lengkap, diperlukan
beberapa komponen pendukung lainnya, seperti JMenuBar, JMenu, dan JMenuItem.
Berikut ini adalah contoh untuk menampilkan JMenu :
import javax.swing.*;
import java.awt.*;
TampilMenuBar(){
super("Membuat Menu");
setSize(350,300);
setLocation(dimensi.width/2-getWidth()/2,dimensi.height/2-
getHeight()/2);
setDefaultCloseOperation(EXIT_ON_CLOSE);
MenuMaster.add(MenuBarang);
MenuMaster.add(MenuCustomer);
MenuMaster.addSeparator();
MenuMaster.add(MenuUserAccount);
MenuBar.add(MenuMaster);
MenuTransaksi.add(MenuPenjualan);
MenuTransaksi.add(MenuPembelian);
page 6 of 21
Materi Pemrograman I (Pertemuan XVI) Universitas Pamulang
MenuBar.add(MenuTransaksi);
MenuBar.add(MenuExit);
setJMenuBar(MenuBar);
setVisible(true);
}
16.2.8. JTable
JTable merupakan kelas yang digunakan untuk membuat tabel. Selain menggunakan
kelas JTable, dalam membuat sebuah table juga diperlukan kelas lain yang terdapat dalam
paket Swing, seperti kelas DefaultTableModel dan kelas JScrollPane.
Berikut ini adalah contoh program untuk menampilkan table :
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import javax.swing.table.*;
TampilTabel(){
super("Menampilkan Tabel");
setSize(400,240);
page 7 of 21
Materi Pemrograman I (Pertemuan XVI) Universitas Pamulang
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panelku.setLayout(null);
Tabel.setModel(ModelTabel);
ScrollBar.getViewport().add(Tabel);
Tabel.setEnabled(true);
// Column Alignment
DefaultTableCellRenderer rightRenderer = new
DefaultTableCellRenderer();
rightRenderer.setHorizontalAlignment( JLabel.RIGHT );
Tabel.getColumnModel().getColumn(0).setCellRenderer( rightRenderer
);
ScrollBar.setBounds(20,20,350,160);
panelku.add(ScrollBar);
getContentPane().add(panelku);
//getContentPane().add(ScrollBar);
setVisible(true);
}
page 8 of 21
Materi Pemrograman I (Pertemuan XVI) Universitas Pamulang
page 9 of 21
Materi Pemrograman I (Pertemuan XVI) Universitas Pamulang
<Type> tergantung pada tipe dari event source. Dapat berupa Key, Mouse, Focus,
Component, Action dan lainnya.
Beberapa listeners dapat diregistrasi dengan satu event source untuk menerima
pemberitahuan event. Listener yang telah teregistrasi dapat juga tidak diregistrasikan lagi
menggunakan method remove<Type>Listener.
page 10 of 21
Materi Pemrograman I (Pertemuan XVI) Universitas Pamulang
TextEvent Extends AWTEvent. Dijalankan ketika nilai dari text field atau text
area dirubah.
WindowEvent Extends ComponentEvent. Dijalankan sebuah object Window
dibuka, ditutup, diaktifkan, nonaktifkan, iconified, deiconified, atau
ketika focus ditransfer kedalam atau keluar window.
<Type>Event
page 11 of 21
Materi Pemrograman I (Pertemuan XVI) Universitas Pamulang
page 12 of 21
Materi Pemrograman I (Pertemuan XVI) Universitas Pamulang
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
tf = new TextField(60);
addMouseListener(this);
}
page 13 of 21
Materi Pemrograman I (Pertemuan XVI) Universitas Pamulang
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
evenTombol(){
super("Event Tombol");
panelku.setLayout(null);
setSize(350,200);
setLocation(dimensi.width/2-getWidth()/2,dimensi.height/2-
getHeight()/2);
setDefaultCloseOperation(EXIT_ON_CLOSE);
labelku.setBounds(55,20,200,25);
labelku.setVisible(false);
tombolku.setBounds(100,90,120,25);
tombolku.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent env){
labelku.setVisible(true);
labelku.setText("Tombol telah ditekan "+Jml+" kali");
Jml++;
}
});
page 14 of 21
Materi Pemrograman I (Pertemuan XVI) Universitas Pamulang
panelku.add(labelku);
panelku.add(tombolku);
getContentPane().add(panelku);
setVisible(true);
}
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
Kalkulatorku(){
super("Aplikasi Kalkulatorku");
panelku.setLayout(null);
setSize(350,200);
page 15 of 21
Materi Pemrograman I (Pertemuan XVI) Universitas Pamulang
setLocation(dimensi.width/2-getWidth()/2,dimensi.height/2-
getHeight()/2);
setDefaultCloseOperation(EXIT_ON_CLOSE);
tampilanTextField.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
tampilanTextField.setEditable(false);
tampilanTextField.setBounds(55,20,200,25);
if (tombol.getText().equals("1")) {
if (setelahOperator) {
tampilanTextField.setText("1");
} else {
tampilanTextField.setText(tampilanTextField.getText()+"1");
}
setelahOperator = false;
} else if (tombol.getText().equals("2")) {
if (setelahOperator) {
tampilanTextField.setText("2");
} else {
tampilanTextField.setText(tampilanTextField.getText()+"2");
}
setelahOperator = false;
} else if (tombol.getText().equals("+")) {
operant1 = tampilanTextField.getText();
operatorDipilih = "+";
setelahOperator = true;
} else if (tombol.getText().equals("=")) {
operant2 = tampilanTextField.getText();
page 16 of 21
Materi Pemrograman I (Pertemuan XVI) Universitas Pamulang
double operantPertama = 0;
double operantKedua = 0;
try {
operantPertama = Double.parseDouble(operant1);
} catch (Exception ex) {
}
try {
operantKedua = Double.parseDouble(operant2);
} catch (Exception ex) {
}
if (operatorDipilih == "+") {
tampilanTextField.setText(Double.toString(operantPertama+operantKedua));
}
}
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
page 17 of 21
Materi Pemrograman I (Pertemuan XVI) Universitas Pamulang
AplikasiToko(){
super("Aplikasi Toko");
setSize(650,500);
setLocation(dimensi.width/2-getWidth()/2,dimensi.height/2-
getHeight()/2);
setDefaultCloseOperation(EXIT_ON_CLOSE);
frmMDI = new JDesktopPane ();
frmMDI.setLayout(null);
this.add(frmMDI);
MenuMaster.add(MenuBarang);
MenuMaster.add(MenuCustomer);
MenuMaster.addSeparator();
MenuMaster.add(MenuUserAccount);
MenuBar.add(MenuMaster);
MenuTransaksi.add(MenuPenjualan);
MenuTransaksi.add(MenuPembelian);
MenuBar.add(MenuTransaksi);
MenuBar.add(MenuExit);
TblBarangSave.addActionListener(new TombolHandler());
TblBarangCancel.addActionListener(new TombolHandler());
setContentPane(frmMDI);
page 18 of 21
Materi Pemrograman I (Pertemuan XVI) Universitas Pamulang
frmMDI.add(frmBarang);
frmMDI.add(frmCustomer);
frmMDI.add(frmUserAccount);
frmBarang.setBounds(10,10,367,250);
frmCustomer.setBounds(30,30,367,250);
frmUserAccount.setBounds(50,50,367,250);
setJMenuBar(MenuBar);
setVisible(true);
}
if (M.getText().equals("Barang")) {
frmBarang.setVisible(true);
} else if (M.getText().equals("Customer")) {
frmCustomer.setVisible(true);
} else if (M.getText().equals("User Account")) {
frmUserAccount.setVisible(true);
} else if (M.getText().equals("Exit")) {
dispose();
}
}
}
if (TblPilih.getText().equals("Save")) {
JOptionPane.showMessageDialog(null,"Dipilih Save");
frmBarang.setVisible(false);
} else if (TblPilih.getText().equals("Cancel")) {
JOptionPane.showMessageDialog(null,"Dipilih Cancel");
frmBarang.setVisible(false);
}
page 19 of 21
Materi Pemrograman I (Pertemuan XVI) Universitas Pamulang
}
}
page 20 of 21
Materi Pemrograman I (Pertemuan XVI) Universitas Pamulang
Referensi:
1. Hariyanto, Bambang, (2007), Esensi-esensi Bahasa Pemrograman Java, Edisi 2,
Informatika Bandung, November 2007.
2. Utomo, Eko Priyo, (2009), Panduan Mudah Mengenal Bahasa Java, Yrama Widya,
Juni 2009.
3. Tim Pengembang JENI, JENI 1-6, Depdiknas, 2007
4. Supriyatno, Pemrograman Database Menggunakan Java & MySQL Untuk Pemula,
Cetakan Pertama, Mediakita, Jakarta, 2010
5. http://download.oracle.com/javase/tutorial/uiswing/components/index.html
6. http://www.compucranks.com/subpage11.html
page 21 of 21