Page 1 of 8
http://arief.ismy.web.id/ 1
Mata Kuliah ............... 1
Pemrograman Java
Muhammad Arief
http://arief.ismy.web.id
Mata Kuliah ............... 2
MINGGU Ke 10
Pemrograman Lanjutan
Pokok Bahasan:
Graphical User Interface dg Swing
Tujuan Instruksional Khusus:
Memahami cara membuat GUI dg Swing
Referensi:
The Really Big Index, Introduction to Java
Programming
Mata Kuliah ............... 3
TOC
• Introduction
• Java GUI API
• Swing VS AWT
• Frame
• Adding Component to a Frame
• Layout Manager
Mata Kuliah ............... 4
Java GUI API
• GUI (Graphical User Interface) : metode
interaksi secara grafis antara user dengan
komputer.
• API (Application Programming Interface) :
suatu kumpulan fungsi-fungsi, prosedur- prosedur, kelas-kelas dalam sebuah
operating system, library yang dapat
mendukung apa yang diminta oleh
program.
Mata Kuliah ............... 5
Swing
To create a Java program with a graphical
user interface (GUI)
• The Swing toolkit includes a rich set of
components for building GUIs and adding
interactivity to Java applications. Includes
components such as: table controls, list
controls, tree controls, buttons, and labels.
• is part of the Java Foundation Classes
(JFC)
Mata Kuliah ............... 6
JFC
Page 2 of 8
http://arief.ismy.web.id/ 2
Mata Kuliah ............... 7
Swing vs AWT
• AWT (Abstract Windows Toolkit)
– Baik untuk pengembangan simple graphical user interface
– Rawan untuk bugs.
– Lightweight components
– Contoh kelas :
• Button, Label, List Component, Canvas, dll dari java.awt
• Swing
– More Robust
– More Versatile
– Flexible library
– Komponennya tergantung pada platform.
– Heavyweight components
– Contoh kelas :
• JButton, JLabel, JList, JComponent, dll dari javax.swing
• Umumnya semua kelas menggunakan “J” di depan nama kelasnya
Mata Kuliah ............... 8
Swing
• Kelas-kelas GUI diklasifikasikan menjadi 3
group :
1.Container Classes
ÎTop Level Container, Intermediate Container
2.Atomic Component Classes
Î JButton, JTextField, JTextArea, JComboBox,
JList, JRadioButton dan JMenu , adalah
subclasses dari JComponent.
3.Layout Manager
Î BorderLayout, FlowLayout.
Mata Kuliah ............... 9
Component Hierarchy
Mata Kuliah ............... 10
Component Hierarchy
Mata Kuliah ............... 11
Top Level Container
– Frame
– Dialog
– Applet
yang diimplementasikan berupa class JFrame,
JDialog dan JApplet.
Mata Kuliah ............... 12
Top Level Container
Page 3 of 8
http://arief.ismy.web.id/ 3
Mata Kuliah ............... 13
Frame
• Menggunakan JFrame
• Tingkatan paling atas dari kontainer untuk
menghandle komponen GUI.
• Method :
– setSize(lebar,tinggi) Æ mengatur ukuran frame
– setLocation(x,y) Æ mengatur lokasi letak frame
– setVisible(boolean) Æ mengatur untuk ditampikan
atau tidak
– setDefaultCloseOperation(int) Æ Spesifikasi
operasi jika frame ditutup
– setLocationRelativeTo(component) ÆSet lokasi
frame ke komponen yang spesifik. Jika komponennya
null maka frame akan tepat di tengah layar
– pack() Æsecara otomatis set ukuran frame dengan
komponen-komponen yang ada di dalam frame.
Mata Kuliah ............... 14
MyFrame
• Contoh Kode :
• Output :
Mata Kuliah ............... 15
Simple.Java
import javax.swing.JFrame;
public class Simple extends JFrame {
public Simple() {
setSize(300, 200);
setTitle("Simple");
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) {
Simple simple = new Simple();
simple.setVisible(true);
}
} Mata Kuliah ............... 16
Adding Component to a Frame
• Untuk menambahkan komponen pada frame
menggunakan method add.
• Setiap JFrame terdiri dari 1 buah content pane
(java.awt.Container)
• Contoh :
– Kita menambahkan 1 komponen dari JButton pada
JFrame secara langsung.
• Buat objek button
JButton btn = new JButton(“Submit”);
• Tambahkan objek button ke dalam frame dengan method add
frm.add(btn);
– Kita dapat menggunakan kelas Container untuk
menambahkannya dengan cara :
• Ketika objek telah dibuat maka langsung menambahkannya
dengan:
java.awt.Container con = frm.getContentPane();
con.add(btn);
Mata Kuliah ............... 17
Adding Component to a Frame
• Contoh Kode :
• Output : 1 buah Button yang dihandle oleh
1 content pane frame tersebut
Mata Kuliah ............... 18
FrameDemo
package components;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/* FrameDemo.java requires no other files. */
public class FrameDemo {
private static void createAndShowGUI() {
//Create and set up the window.
JFrame frame = new JFrame("FrameDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel emptyLabel = new JLabel(“test aja");
emptyLabel.setPreferredSize(new Dimension(175, 100));
frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);
//Display the window.
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}