Pemrograman Berorientasi Objek Lanjut Lecture 3: Layout Manager

dokumen-dokumen yang mirip
Sendy Ferdian Sujadi

PEMROGRAMAN II. Materi : nursari2010.blogdetik.com String String Handling Java.util,Java.io. By : Sri Rezeki Candra Nursari

GUI (Grapichal User Interface)

Swing. suatu program. Tetapi, program Anda akan kelihatan tidak menarik dan tidak nyaman digunakan bagi para

GUI & Event Handling. Viska Mutiawani, M.Sc

Materi : GUI AWT & SWING.

Modul Praktikum 9 BAB IX LAYOUTING. Departemen Teknologi Informasi Telkom Applied Science School H a l

IF PEMROGRAMAN LANJUT GRAPHICAL USER INTERFACE (GUI) 11 DENGAN SWING. Oleh : Andri Heryandi, M.T.

GUI & Event Handling. Viska Mutiawani, M.Sc. 1 Viska Mutiawani - Informatika FMIPA Unsyiah

Abstract Window Toolkit

GUI in Java. Presented by HCI Team Ali Ridho Barakbah Umi Sa adah Nur Rosyid Mubtada i. Supervised by Prof. Kohei Arai

PERTEMUAN 6 AWT & SWING

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

A. TUJUAN PEMBELAJARAN

Membangun GUI (dengan AWT & Swing) OOP Java

Membuat Form Dinamis di Java

Arranging Components on a User Interface. Pertemuan 14 Pemrograman Berorientasi Obyek Oleh Tita Karlita

Materi 4 Pemrograman Visual

PBO Lanjut Lecture 02 Komponen Swing Dasar N IKO IB R A H IM, M IT U N IV E R S ITA S K R IS TEN M A R A N A TH A

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

A. TUJUAN PEMBELAJARAN

Materi 3 Pemrograman Visual

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

SOAL UAS Mata Kuliah : Pemrograman Berorientasi Objek Lanjutan

2. Manakah diantara pilihan berikut ini yang merupakan bagian dari event delegation model? Sebuah komponen yang menampilkan message

Modul Praktikum 7 Pemograman Berorientasi Objek

Membuat Menu Login Sederhana [Full Coding]

PERTEMUAN VI AWT DAN SWING TUJUAN PRAKTIKUM. 1. Praktikan mengenal pembuatan GUI pada Java. 2. Praktikan memahami action pada objek dalam Java.

5/24/2012. Pemograman Berorientasi Objek. Pembahasan. Abstract Windowing Toolkit & Swing. Pembahasan

Membuat User Interface dengan Swing. Program yang dibuat sebelumnya selalu berbasis console User lebih senang berinteraksi dengan

Pemrograman Berorientasi Obyek. Ramos Somya

Modul 08. User Interface 01

A. TUJUAN PEMBELAJARAN

BAB IX. USER INTERFACE

Pemrograman Lanjut. Intro to GUI (Graphical User Interface)

IF PEMROGRAMAN LANJUT EVENT. Oleh : Andri Heryandi, M.T.

1.Tujuan. 2. Latar Belakang

1. Mana dari adapter berikut ini yang merupakan class adapter yang benar didalam Java. ComponentAdapter

Creating Graphical User Interfaces [1] with Java By: De Rosal Ignatius Moses Setiadi

Graphical User Interface (GUI)

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

BAB 7 Abstract Windowing Toolkit dan Swing

Slide 6: Writing Classes

Object Oriented Pemrograman yang mendukung konsep objek. (inheritance, capsulation, polymorphism)

Dasar Perancangan Graphical User Interface

BAB IX MEMBUAT FORM 9.1 Membuat Form Secara Konvensional

Materi 5 Pemrograman Visual

MODUL 7 - EXCEPTION HANDLING

GUI Event Handling. minggu 13. Wednesday, 16 May 12

PBO LANJUT USING WYSIWYG EDITOR FOR BUILDING GUI. Niko Ibrahim, MIT Universitas Kristen Maranatha

Percobaan 7 GUI(Graphical User Interface )

PEMROGRAMAN BERORIENTASI OBJEK

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

MODUL PRAKTIKUM BERORIENTASI OBJEK NINF615 SEMESTER GASAL 2016/2017 PROGRAM STUDI S1 TEKNIK INFORMATIKA

GRAPHICAL USER INTERFACE (GUI)

Materi 2 Pemrograman Visual

BINA NUSANTARA UNIVERSITY NATA LASE


Materi 1 Pemrograman Visual

GARIS-GARIS BESAR PROGRAM PERKULIAHAN (GBPP)

Membuat Frame, Label, TextField dan Button di Java [Full Coding]

Pemrograman Berorientasi Objek Lanjut Lecture 01 - Introduction

IKG2I4 / Software Project I

Modul 2. [access specifier] [tipe data] [nama variabel];

PAKET (PACKAGE) 20 Januari 2012

Modul 7 Praktikum Pemrograman Visual

MODUL III ARRAYLIST TUGAS PENDAHULUAN

Membuat Kalkulator dengan Java

Pemrograman Java. Pertemuan VIII By: Augury

Pemrograman Berbasis Java PERSEWAAN PELAMPUNG. Riska Nony Oktaviani Kelas 21 Teknik Informatika Teknologi Informasi

TPI4202 e-tp.ub.ac.id. Lecture 4 Mas ud Effendi

Tugas Java. : Evannata Dwiyan. Nim : : Sistem Informasi. Kelas : 21. : Informasi Restoran

AWT (ABSTRACT WINDOWS TOOLKITS)

PEMROGRAMAN BERORIENTASI OBJEK

GUI, Ev e Ev n e t n Handling, Ex ception Handling in Java

- Setiap pola yang menggambarkan permasalahan yang terjadi secara berulang, serta

MK. Pemrograman Berorientasi Objek. Input dari Keyboard. Karmilasari

Materi 6 Pemrograman Visual

Graphics2D dan Geometry

MODUL PRAKTIKUM KE 3 A.

BAB I PROJECT NETBEANS DAN GUI SEDERHANA

Tugas IV Kelas Virtual Pemr. Visual

DIK-020 Pemograman Berorientasi Objek 5/24/2012

Dwiny Meidelfi, M.Cs

BAB 2 INPUT DARI KEYBOARD

BAB I PENDAHULUAN. Listing 1.1 menunjukkan program GUI Java sederhana menggunakan AWT. import java.awt.*; import java.awt.event.*;

JAVA SWING. Swing merupakan library pada java untuk membuat sebuah tampilan seperti

TUGAS PEMROGRAMAN BERBASIS JAVA ADARA HIJAB

KEAHLIAN PEMROGAMAN JAVA

Pemograman Swing. Netbeans:

PEMROGRAMAN II. By : Sri Rezeki Candra Nursari

Lab Bahasa Pemrograman 2

BAB 5 Mendapatkan Input dari Keyboard

Modul Praktikum 8 Pemograman Berorientasi Objek

Prosedur dan Fungsi. Ciri prosedur pada java selalu dimulai dengan : private/public void namaprosedur ( tipedataparameter1 namaparameter1,

BAB I PENDAHULUAN. Maksud dan tujuan dari pembuatan Aplikasi Penentu Nilai Mahasiswa pada pemrograman java adalah:

TUGAS PEMROGRAMAN BERBASIS JAVA. Disusun Oleh : NAMA : Rendy Rangga Yudha NIM :

PENGENALAN JAVA GUI PROGRAMMING

Praktikum III : Menggunakan JRadioButton

KELAS INNER, KELAS ABSTRAK, DAN INTERFACE. 16 th week Estu Sinduningrum ST,MT

Transkripsi:

Pemrograman Berorientasi Objek Lanjut Lecture 3: Layout Manager N IKO IB R A H IM, M IT F A K U LTA S TEKN O L O G I IN F O R M A S I U N IV E R S ITA S K R IS TEN M A R A N A TH A

Review Menu memiliki 3 komponen? JMenu, JMenuItem, & JMenuBar Akses menu melalui keyboard? Mnemonics (alt + karakter) Accelerator (ctrl + karakter) Perbedaan Pop up Menu dengan Menu biasa? Pop up menu tidak di-attach ke JMenuBar ScrollBars memiliki 3 display policy? Needed, Always, Never Dialog dibuat dari JOptionPane dengan cara memanggil static methods-nya. Ada 4 variasi method ini: JOptionPane.showMessageDialog JOptionPane.showConfirmDialog JOptionPane.showInputDialog JOptionPane.showOptionDialog

Materi Hari Ini Layout Manager Standard layout manager Latihan

Problems with Swing Selama ini, pada saat kita merancang GUI untuk program Java, salah satu halangannya adalah bahwa komponen yang digunakan dapat berpindah-pindah lokasi. Hal ini terjadi apabila kita me-resize frame utama. Komponen dapat diorganisasikan di dalam container dengan menggunakan class layout manager. Kita dapat mengubah secara manual class layout yang ingin digunakan, dan setiap container dapat memiliki layout manager masing-masing.

Layout Manager Seperti pada gambar, layout manager bertugas menyusun komponen-komponen (button, label, checkbox, dll) di dalam suatu container (panel, frame, dll). Layout manager menentukan posisi dan ukuran setiap komponen di dalam container. Proses ini akan berbeda untuk setiap class layout yang digunakan. AWT dan Swing memiliki beberapa layout manager standar yang penggunaannya seringkali dikombinasikan sesuai situasi dan kebutuhan kita.

Standard Layout Manager FlowLayout GridLayout BorderLayout BoxLayout CardLayout GridBagLayout SpringLayout GroupLayout

Mengubah Default Layout Manager Setiap container memiliki default layout manager. Pada saat kita membuat sebuah container (misal: panel, frame, tabbed pane, split pane, dll), maka container tsb memiliki objek LayoutManager masingmasing. Kita dapat mengubah layout manager default tersebut dengan suatu layout yang baru dengan menggunakan method setlayout() Contoh: Default layout manager untuk JFrame adalah: FlowLayout Kita dapat mengubah layout tersebut dengan cara misalnya: myframe.setlayout(new BorderLayout());

1. FlowLayout FlowLayout merupakan layout manager yang simpel. FlowLayout menyusun komponen berdasarkan ukuran default masing-masing, dengan posisi mulai dari kiri ke kanan dan dari atas ke bawah di dalam container yang digunakan. FlowLayout dapat memiliki row justification : LEFT, CENTER, atau RIGHT serta padding horizontal/vertical. Secara default, flow layout menggunakan justification CENTER. Artinya, semua komponen akan disimpan di posisi tengah-tengah. FlowLayout merupakan default untuk JPanel.

Penggunaan FlowLayout Contoh: JPanel panel1 = new JPanel(); panel1.setlayout(new FlowLayout()); Pada dasarnya, untuk aplikasi sesungguhnya, kita tidak disarankan menggunakan FlowLayout karena sifatnya yang tidak bisa memposisikan komponen dengan pasti.

Latihan 1: Flow.java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Flow extends JFrame { public Flow( ) { createuserinterface(); private void createuserinterface(){ // FlowLayout is default layout manager for a JPanel JPanel panel1 = new JPanel(); panel1.setlayout(new FlowLayout()); //!! baris ini dapat dihapus!! panel1.add(new JButton("One")); panel1.add(new JButton("Two")); panel1.add(new JButton("Three")); panel1.add(new JButton("Four")); panel1.add(new JButton("Five")); this.add(panel1); this.settitle("flow"); this.setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); this.setsize(400, 75); this.setlocation(200, 200); this.setvisible(true); public static void main(string[] args) { Flow app = new Flow();

2. GridLayout GridLayout menempatkan komponen dalam bentuk rectangular grid. Ada 3 constructor untuk GridLayout: GridLayout(): membuat layout dengan satu kolom per komponen. Hanya satu baris yang digunakan. GridLayout(int rows, int cols): membuat suatu layout berdasarkan jumlah baris dan kolom yang diinginkan. GridLayout(int rows, int cols, int hgap, int vgap): membuat layout berdasarkan jumlah baris dan kolom yang diinginkan, serta ukuran jarak (gap) horisontal maupun vertical untuk setiap baris dan kolom tersebut. GridLayout menempatkan komponen dengan urutan dari kiri ke kanan dan dari atas ke bawah. GridLayout akan memaksa setiap komponen untuk menempati space container yang kosong serta membagi rata ukuran space tersebut.

Penggunaan GridLayout GridLayout paling cocok digunakan untuk menyusun komponen yang berukuran sama, misalnya 2 buah JPanel berukuran sama di dalam sebuah frame. Contoh: frame.add(panel1); frame.add(panel2); frame.setlayout(new GridLayout(2, 1)); Kita dapat men-set jumlah baris dan kolom dengan angka 0. Artinya, kita tidak mempedulikan berapa banyak komponen yang akan masuk ke dalam dimensi layout manager tersebut. Contoh: GridLayout(2,0) Artinya: kita membuat layout manager dengan 2 baris dan unlimited number untuk kolomnya. Apa yang terjadi kalau kita memiliki 10 komponen?

Latihan 2: Grid.java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Grid extends JFrame { public Grid( ) { createuserinterface(); private void createuserinterface(){ JPanel panel1 = new JPanel(); panel1.setlayout(new GridLayout(3, 2)); panel1.add(new JButton("One")); panel1.add(new JButton("Two")); panel1.add(new JButton("Three")); panel1.add(new JButton("Four")); panel1.add(new JButton("Five")); this.add(panel1); this.settitle("grid"); this.setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); this.setsize(200, 200); this.setlocation(200, 200); this.setvisible(true); public static void main(string[] args) { Grid app = new Grid();

3. BorderLayout BorderLayout menyusun komponen berdasarkan lokasi geografis: NORTH, SOUTH, EAST, WEST, and CENTER. Secara optional, kita dapat juga memberikan padding di antara komponen. BorderLayout merupakan layout default untuk JWindow dan JFrame. Karena setiap komponen diasosiasikan dengan suatu arah geografis, akibatnya layout ini hanya dapat menangani maksimal 5 komponen.

Penggunaan BorderLayout Pada saat menambahkan suatu komponen kepada container yang memiliki border layout, kita harus menentukan secara bersamaan komponen-nya dan posisi-nya. Contoh: frame.setlayout(new BorderLayout( )); frame.add(new JButton("Button1"), BorderLayout.NORTH ); frame.add(new JButton("Button2"), BorderLayout.SOUTH );

Latihan 3: BorderLayoutApp1.java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class BorderLayoutApp1 extends JFrame { public BorderLayoutApp1( ) { createuserinterface(); private void createuserinterface(){ this.settitle("border1"); this.setsize(300, 300); this.setlocation(200, 200); this.setlayout(new BorderLayout( )); this.add(new JButton("North"), BorderLayout.NORTH ); this.add(new JButton("South"), BorderLayout.SOUTH ); this.add(new JButton("East"), BorderLayout.EAST ); this.add(new JButton("West"), BorderLayout.WEST ); this.add(new JButton("Center"), BorderLayout.CENTER ); this.setvisible(true); public static void main(string[] args) { BorderLayoutApp1 app = new BorderLayoutApp1(); app.setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE );

Latihan 4: BorderLayoutApp2.java if we don't want BorderLayout messing with the sizes of our components import java.awt.*; import java.awt.event.*; import javax.swing.*; public class BorderLayoutApp2 extends JFrame { public BorderLayoutApp2( ) { createuserinterface(); private void createuserinterface(){ this.settitle("border2"); this.setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); this.setsize(225, 150); this.setlocation(200, 200); this.setvisible(true); this.setlayout(new BorderLayout( )); JPanel p = new JPanel( ); p.add(new JButton("North")); this.add(p, BorderLayout.NORTH); p = new JPanel( ); p.add(new JButton("South")); this.add(p, BorderLayout.SOUTH); p = new JPanel( ); p.add(new JButton("East")); this.add(p, BorderLayout.EAST); p = new JPanel( ); p.add(new JButton("West")); this.add(p, BorderLayout.WEST); p = new JPanel( ); p.add(new JButton("Center")); this.add(p, BorderLayout.CENTER); public static void main(string[] args) { BorderLayoutApp2 app = new BorderLayoutApp2();

4. BoxLayout Layout manager yang telah kita bahas sebelumnya merupakan bagian dari package java.awt. Javax.swing memiliki beberapa tambahan layout manager lagi, salah satunya adalah: BoxLayout. Layout manager ini sangat berguna untuk membuat toolbars sederhana atau vertical button bars. Cara kerjanya sangat sederhana yaitu menempatkan komponen dalam satu baris atau satu kolom.

Penggunaan BoxLayout Untuk mempermudah penggunaan BoxLayout, Swing menyediakan sebuah kelas yang bernama Box yaitu sebuah container yang secara otomatis memiliki BoxLayout manager. Box memiliki beberapa methods yang akan mempermudah kita dalam menggunakan BoxLayout manager, yaitu: createhorizontalbox() untuk membuat box horizontal createhorizontalglue() untuk merekatkan komponen createhorizontalstrut(int n) untuk memberi jarak antar komponen createverticalbox() untuk membuat box vertical createverticalglue() untuk merekatkan komponen createverticalstrut(int n) untuk memberi jarak antar komponen

Latihan 5: Boxer.java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Boxer extends JFrame { public Boxer(){ createuserinterface(); private void createuserinterface(){ Container box = Box.createHorizontalBox( ); box.add(box.createhorizontalglue( )); box.add(new JButton("In the")); box.add(box.createhorizontalglue( )); box.add(new JButton("clearing")); box.add(box.createhorizontalstrut(10)); box.add(new JButton("stands")); box.add(box.createhorizontalstrut(10)); box.add(new JButton("a")); box.add(box.createhorizontalglue( )); box.add(new JButton("boxer")); box.add(box.createhorizontalglue( )); this.add(box); this.settitle("boxer"); this.setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); this.setsize(250, 250); this.setlocation(200, 200); this.pack( ); this.setvisible(true); public static void main(string[] args) { Boxer app = new Boxer();

5. CardLayout CardLayout merupakan layout manager yang mampu menciptakan efek tumpukan komponen. Artinya, layout ini tidak memposisikan komponen di lokasi-lokasi tertentu di dalam kontainer, melainkan menampilkannya satu demi satu. Di balik button one, terdapat komponen lainnya.

Penggunaan CardLayout Penggunaan CardLayout biasanya untuk membuat panel yang bersifat custom-tabbed. Namun, sebenarnya kita dapat membuat panel tersebut dengan menggunakan komponen JTabbedPane. Untuk mempraktekkan cara kerja dan efek tumpukan dari CardLayout ini, kita perlu mempelajari terlebih dahulu mengenai event-driven programming seperti yang ada di Latihan 5.

Latihan 5: Card.java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Card extends JPanel { CardLayout cards = new CardLayout( ); public Card( ) { setlayout(cards); ActionListener listener = new ActionListener( ) { public void actionperformed(actionevent e) { cards.next(card.this); ; JButton button; button = new JButton("one"); button.addactionlistener(listener); add(button, "one"); button = new JButton("two"); button.addactionlistener(listener); add(button, "two"); button = new JButton("three"); button.addactionlistener(listener); add(button, "three"); public static void main(string[] args) { JFrame frame = new JFrame("Card"); frame.setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); frame.setsize(200, 200); frame.setlocation(200, 200); frame.setcontentpane(new Card( )); frame.setvisible(true);

6. GridBagLayout GridBagLayout merupakan layaout manager yang sangat fleksibel. Layout ini memampukan kita untuk memposisikan komponen relatif terhadap komponen lainnya berdasarkan constraint tertentu. Dengan menggunakan GridBagLayout, kita dapat menciptakan layout apapun juga, tanpa batas. Komponen disusun pada koordinat tertentu pada sebuah grid yang disebut logical coordinate. Logical coordinate berarti bahwa koordinat suatu komponen ditentukan oleh sekumpulan komponen lainnya. Baris dan kolom dari grid tersebut bersifat stretch yang bergantung pada size dan constraint yang dimilikinya.

Penggunaan GridBag Walaupun fleksibel, pembuatan GridBag ini terkadang sangat membingungkan karena kita harus mengatur berbagai size dan constraint dari setiap komponen yang digunakan. Sebenarnya, penggunaan GridBagLayout ini jauh lebih mudah apabila kita menggunakan tools yang mendukung WYSIWYG GUI builder. (contohnya: NetBeans IDE)

Latihan 6: GridBag1.java A Simple GridBag layout: Grid Coordinate import java.awt.*; import java.awt.event.*; import javax.swing.*; public class GridBag1 extends JFrame { private GridBagConstraints constraints; public GridBag1( ) { createuserinterface(); private void createuserinterface(){ constraints = new GridBagConstraints( ); this.setlayout(new GridBagLayout( )); int x, y; // for clarity this.addgb(new JButton("North"), x = 1, y = 0); this.addgb(new JButton("West"), x = 0, y = 1); this.addgb(new JButton("Center"), x = 1, y = 1); this.addgb(new JButton("East"), x = 2, y = 1); this.addgb(new JButton("South"), x = 1, y = 2); this.settitle("gridbag1"); this.setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); this.setsize(225, 150); this.setlocation(200, 200); this.setvisible(true); private void addgb(component component, int x, int y) { constraints.gridx = x; constraints.gridy = y; this.add(component, constraints); public static void main(string[] args) { GridBag1 app = new GridBag1();

Latihan 7: GridBag2.java Using fill constraint: Controls whether the component expands to fill the allotted space import java.awt.*; import java.awt.event.*; import javax.swing.*; public class GridBag2 extends JFrame { private GridBagConstraints constraints; public GridBag2( ) { createuserinterface(); private void createuserinterface(){ constraints = new GridBagConstraints( ); this.setlayout(new GridBagLayout( )); constraints.weightx = 1.0; constraints.weighty = 1.0; constraints.fill = GridBagConstraints.BOTH; int x, y; // for clarity this.addgb(new JButton("North"), x = 1, y = 0); this.addgb(new JButton("West"), x = 0, y = 1); this.addgb(new JButton("Center"), x = 1, y = 1); this.addgb(new JButton("East"), x = 2, y = 1); this.addgb(new JButton("South"), x = 1, y = 2); private void addgb(component component, int x, int y) { constraints.gridx = x; constraints.gridy = y; this.add(component, constraints); public static void main(string[] args) { GridBag2 app = new GridBag2(); this.settitle("gridbag1"); this.setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); this.setsize(225, 150); this.setlocation(200, 200); this.setvisible(true); continue

Latihan 8: GridBag3.java Spanning Rows and Columns import java.awt.*; import java.awt.event.*; import javax.swing.*; public class GridBag3 extends JFrame { GridBagConstraints constraints = new GridBagConstraints( ); public GridBag3( ) { createuserinterface(); private void createuserinterface(){ this.setlayout(new GridBagLayout( )); constraints.weightx = 1.0; constraints.weighty = 1.0; constraints.fill = GridBagConstraints.BOTH; int x, y; // for clarity constraints.gridheight = 2; // span two rows addgb(new JButton("one"), x = 0, y = 0); constraints.gridheight = 1; // set it back addgb(new JButton("two"), x = 1, y = 0); addgb(new JButton("three"), x = 2, y = 0); constraints.gridwidth = 2; // span two columns addgb(new JButton("four"), x = 1, y = 1); constraints.gridwidth = 1; // set it back this.settitle("gridbag3"); this.setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); this.setsize(200, 200); this.setlocation(200, 200); this.setvisible(true); void addgb(component component, int x, int y) { constraints.gridx = x; constraints.gridy = y; this.add(component, constraints); public static void main(string[] args) { GridBag3 app = new GridBag3();

Latihan 9: GridBag4.java Using weight to control component size import java.awt.*; import java.awt.event.*; import javax.swing.*; public class GridBag4 extends JFrame { GridBagConstraints constraints = new GridBagConstraints( ); public GridBag4( ) { createuserinterface(); private void createuserinterface(){ this.setlayout(new GridBagLayout( )); constraints.fill = GridBagConstraints.BOTH; constraints.weighty = 1.0; int x, y; // for clarity constraints.weightx = 0.1; addgb(new JButton("one"), x = 0, y = 0); constraints.weightx = 0.5; addgb(new JButton("two"), ++x, y); constraints.weightx = 1.0; addgb(new JButton("three"), ++x, y); this.settitle("gridbag4"); this.setdefaultcloseoperation( JFrame.EXIT_ON_CLOSE ); this.setsize(300, 100); this.setlocation(200, 200); this.setvisible(true); void addgb(component component, int x, int y) { constraints.gridx = x; constraints.gridy = y; this.add(component, constraints); public static void main(string[] args) { GridBag4 app = new GridBag4();

Latihan 10: GridBag5.java Using padding and insets in a layout import java.awt.*; import java.awt.event.*; import javax.swing.*; public class GridBag5 extends JFrame { GridBagConstraints constraints = new GridBagConstraints( ); public GridBag5( ) { createuserinterface(); private void createuserinterface(){ this.setlayout(new GridBagLayout( )); int x, y; // for clarity addgb(new JButton("North"), x = 1, y = 0); constraints.ipadx = 25; // add padding constraints.ipady = 25; addgb(new JButton("West"), x = 0, y = 1); constraints.ipadx = 0; // remove padding constraints.ipady = 0; addgb(new JButton("Center"), x = 1, y = 1); addgb(new JButton("East"), x = 2, y = 1); addgb(new JButton("South"), x = 1, y = 2); this.settitle("gridbag5"); this.setdefaultcloseoperation(jframe.exit_on_close); this.setsize(250, 250); this.setlocation(200, 200); this.setvisible(true); void addgb(component component, int x, int y) { constraints.gridx = x; constraints.gridy = y; this.add(component, constraints); public static void main(string[] args) { GridBag5 app = new GridBag5();

Last but not least: GroupLayout Lihat contoh program: Group.java AlumniForm.java GroupLayout dapat kita buat dengan cara mengetik manual seperti membuat layout lainnya. Namun, keunggulan GroupLayout adalah dapat dibuat dengan mudah apabila menggunakan IDE seperti NetBeans.

Summary Congratulations!, you ve learnt how to manage component s layout in Java GUI application!