Komponen-komponen di Java yang diletakkan di kelompok kelas-kelas wadah (container classes) seperti kelas JFrame, JApplet atau JPanel dapat diatur atau disusun sesuai dengan keinginan. Untuk mengatur tata letak komponen di kelas-kelas wadah tersebut, Anda perlu menggunakan layout manager. Semua layout manager di Java harus mengimplementasikan interface LayoutManager.
Beberapa layout manager adalah obyek yang dibuat dari kelas FlowLayout, GridLayout, BoxLayout, BorderLayout, CardLayout, GroupLayout dan SpringLayout. FlowLayout adalah layout manager default untuk kelas Applet, Panel dan JPanel. BorderLayout adalah layout manager default untuk content pane dari kelas JFrame dan JApplet. Artikel kali ini akan menjelaskan layout manager dari kelas GridLayout.
Kelas GridLayout adalah salah satu layout manager yang sering digunakan dalam mengatur penempatan komponen di content pane. Komponen akan disusun dalam bentuk matrik dan ditempatkan di sel matrik (matrix cell). Komponen yang ditempatkan akan menggunakan semua ruang di dalam sel tersebut.
Setiap sel mempunyai ukuran yang sama dan akan berubah bila ukuran jendela atau frame dirubah. GridLayout mempunyai tiga konstruktor yang dapat digunakan untuk membuat atau mengkonstruksi obyek GridLayout. Berikut ini adalah tabel tiga konstruktor dari kelas GridLayout:
Tabel Konstruktor Kelas GridLayout
Konstruktor | Keterangan |
---|---|
GridLayout() | Mengkonstruksi obyek GridLayout yang memiliki hanya satu baris. |
GridLayout(int rows, int cols) | Mengkonstruksi obyek GridLayout yang memiliki jumlah baris dan kolom ditentukan. |
GridLayout(int rows, int cols, int hGap, int vGap) | Mengkonstruksi obyek GridLayout yang memiliki jumlah baris, kolom dan celah (gap) horisontal dan vertikal diantara komponen ditentukan |
Mengatur atau menyusun komponen Java di container classes memang tidak mudah. Anda tidak cukup menggunakan layout manager. Untuk mengatur atau menyusun komponen Java sesuai dengan keinginan, Anda dapat menggunakan bantuan kelas JPanel.
Berikut ini adalah contoh program Java menggunakan layout manager dari kelas GridLayout untuk menempatkan 10 komponen Java yaitu obyek tombol (button) dari kelas JButton ke dalam content pane. Penempatan komponen akan diatur menggunakan layout manager dari kelas GridLayout yang mempunyai 3 baris dan 4 kolom dengan celah (gap) 5 pixel, baik horisontal maupun vertikal.
// Nama file : DemoGridLayout.java // Mendemonstrasikan penggunaan layout manager GridLayout // Mengimpor kelas import javax.swing.JFrame; import javax.swing.JButton; import java.awt.GridLayout; import java.awt.Container; import java.awt.Color; // deklarasi kelas DemoGridLayout public class DemoGridLayout extends JFrame { // Konstruktor public DemoGridLayout() { GridLayout grdLayout = new GridLayout(3, 4, 5, 5); Container container = getContentPane(); container.setLayout(grdLayout); container.setBackground(Color.ORANGE); // Meletakkan komponen ke content pane for (int a = 1; a <= 10; a++) container.add(new JButton("Tombol " + a)); } // Metoda main public static void main(String[] args) { DemoGridLayout grdLayout = new DemoGridLayout(); grdLayout.setTitle("Kelas DemoGridLayout"); grdLayout.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); grdLayout.setSize(400, 120); grdLayout.setVisible(true); } }

Bila Anda merubah ukuran jendela atau frame, maka posisi dari tombol tidak akan berubah (jumlah baris dan kolom tetap) dan celah antar komponen baik horisontal maupun vertikal juga tidak berubah.