Java GUI

advertisement
Java GUI
PBO
Konsep Graphical User
Interface (GUI) di Java
API untuk Aplikasi GUI di Java
1. AWT (Abstract Window Toolkit):
Library dan komponen GUI (java.awt) yang pertama kali
diperkenalkan oleh Java, Sun tidak merekomendasikan
lagi penggunaan komponen GUI dari AWT
2. Swing atau JFC (Java Foundation Class):
Library dan komponen GUI (javax.swing) terbaru dari
Java dan yang direkomendasikan Sun untuk
pemrograman GUI. Komponen Swing sebagian besar
adalah turunan AWT dan lebih lengkap daripada AWT
komponen AWT & Swing dapat digunakan bersama
Komponen AWT
AWT
Contoh membuat aplikasi GUI
import java.awt.*;
public class SampleFrame extends Frame {
public static void main(String args[]) {
SampleFrame sf = new SampleFrame();
sf.setSize(100, 100);
sf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
sf.setVisible(true);
}
}
Contoh membuat aplikasi graphic
import java.awt.*;
public class GraphicPanel extends Panel {
GraphicPanel() {
setBackground(Color.black); //Konstanta dalam class Color }
public void paint(Graphics g) {
g.setColor(new Color(0,255,0)); //hijau
g.setFont(new Font("Helvetica",Font.PLAIN,16));
g.drawString("Hello GUI World!", 30, 100);
g.setColor(new Color(1.0f,0,0)); //red
g.fillRect(30, 100, 150, 10); }
public static void main(String args[]) {
Frame f = new Frame("Testing Graphics Panel");
GraphicPanel gp = new GraphicPanel();
f.add(gp);
f.setSize(600, 300);
f.setVisible(true);
} }
frame dengan kontrol di
dalamnya.
Fitur Swing
• Komponen GUI Lengkap: button, listbox, combobox,
textarea, dsb
• Pluggable Look-and-Feel: tampilan GUI dapat diubah
sesuai dengan kehendak (tidak perlu mengikuti native
OS)
• Data Transfer Antar Komponen: drag and drop, copy
and paste
• Internationalization: proses desain aplikasi yang
memungkinkan aplikasi dijalankan sesuai dengan
preferensi tanpa rekompilasi
• Localization: proses translasi teks ke bahasa lokal dan
menambahkan komponen lokal
Komponen Swing
Komponen Dasar Swing
1. Top-Level Container: kontainer dasar dimana komponen
lainnya diletakkan (JFrame, JDialog dan Applet)
2. Intermediate Container: kontainer perantara dimana
komponen lainnya diletakkan
(JPanel, JScrollPane, JTabbedPane, JToolbar, JSplitPane)
3. Atomic Component: komponen yang memiliki fungsi
spesifik dan menerima interaksi langsung dari user
(JButton, JLabel, JTextArea, dsb)
4. Layout Manager: mengatur tata letak dan posisi komponen
dalam kontainer (BorderLayout, BoxLayout, FlowLayout,
GridBagLayout, GridLayout)
5. Event Handling: menangani event yang dilakukan user (klik
mouse, ketik keyboard, perbesar frame, dsb)
Top-Level Container
• JFrame, JDialog, Applet
Content Pane dan Menu Bar
1. Menambahkan content pane pada Jframe
frame.getContentPane().add(yellowLabel ,
BorderLayout.CENTER);
2. Menambahkan komponen pada content pane JPanel
contentPane = new JPanel(new BorderLayout());
contentPane.setBorder(someBorder );
contentPane.add(someComponent , BorderLayout.CENTER);
contentPane.add(anotherComponent ,
BorderLayout.PAGE_END);
frame.setContentPane(contentPane);
3. Menambahkan menu bar pada Jframe
frame.setJMenuBar(greenMenuBar );
JFrame
cara-1
JFrame
Cara-2
JFrame
Cara-2 (dg setBound)
Atomic Component
Atomic Component
JButton
Layout Manager
Layout Manager
• Posisi dan ukuran suatu komponen ditentukan
oleh layout manager. Layout manager
mengatur tampilan dari komponen di dalam
kontainer.
1.FlowLayout
2.BorderLayout
3.GridLayout
4.CardLayout
FlowLayout Manager
• FlowLayout Manager adalah default manager
untuk class Panel dan subclassnya, termasuk
class applet.
FlowLayoutBeraksi.java
Border Layout Manager
• BorderLayout membagi kontainer menjadi
lima bagian diantaranya utara, selatan,
timurbarat, dan tengah
GridLayout Manager
• GridLayout manager membagi kontainer
menjadi baris dan kolom. Semua region
memiliki ukuran yang sama. Hal tersebut tidak
mempedulikan ukuran sebenarnya dari
komponen.
GridLayoutBeraksi.java
BoxLayoutBeraksi.java
CardLayoutBeraksi.java
GridLayoutBeraksi.java
Joption Pane
Penanganan Kejadian
(Event Handling)
Delegation Event Model
• Delegasi event model menguraikan bagaimana
program dapat merespon interaksi dari user
1. Event Source
2. Event Listener/Handler
3. Event Object
Event Source
• Event source mengacu pada komponen GUI
yang meng-generate event.
• contoh, jika user menekan tombol, event
source dalam hal ini adalah tombol
Event Listener/Handler
• Event listener menerima berita dari eventevent dan proses-proses interaksi user.
• Ketika tombol ditekan, listener akan
mengendalikan dengan menampilkan sebuah
informasi yang berguna untuk user.
Event Object
• Ketika sebuah event terjadi (misal, ketika user
berinteraksi dengan komponen GUI),sebuah
object event diciptakan.
Delegation Event Model
• Pada awalnya, sebuah listener harus
diregistrasikan dengan sebuah source.
Sehingga dapat menerima informasi
tentang event-event yang terjadi pada
source tersebut.
• Ketika sesuatu terjadi dengan event
source, sebuah event object akan
menguraikan event yang diciptakan.
• Saat listener menerima sebuah event
object (pemberitahuan) dari source, dia
akan bekerja. Menerjemahkan
pemberitahuan dan memproses event
yang terjadi.
Proses Penanganan Event
1. Komponen harus didaftarkan sebagai pendengar (listener) dg
menggunakan method addXXXListener()
button = new JButton("Click Me");
button.addActionListener(this);
2. Meng-implementasi interface listener atau meng-extends class
adapter (bisa juga dengan membuat inner class)
1. class HelloGUI implements ActionListener
2. class HelloGUI extends MouseAdapter{} atau
class HelloGUI extends JFrame{ class handler extends MouseAdapter{}}
3. Menuliskan code penangan kejadian pada method class handler
extends
MouseAdapter{
public void mouseClicked(MouseEvent e){
//code penangan kejadian }}
Event Handling
Download