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 kelas JFrame dan JApplet. Artikel kali ini akan menjelaskan layout manager dari kelas GridLayout.
Kelas GridLayout adalah salah satu dari layout manager yang sering digunakan untuk mengatur komponen di content pane. Komponen 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 diubah. GridLayout mempunyai tiga konstruktor 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 kelas-kelas wadah (container classes) memang tidak mudah. Anda tidak cukup hanya dengan menggunakan layout manager. Untuk lebih mudah mengatur atau menyusun komponen sesuai keinginan, Anda dapat menggunakan bantuan kelas JPanel.
Berikut ini adalah contoh program Java menggunakan layout manager dari kelas GridLayout untuk menempatkan 10 obyek tombol dari kelas JButton ke content pane. Penempatan komponen diatur menggunakan layout manager kelas GridLayout yang mempunyai 3 baris dan 4 kolom dengan celah (gap) 5 pixel, baik horisontal maupun vertikal.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | // 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 mengubah ukuran jendela atau frame, maka posisi tombol tidak akan berubah, jumlah baris dan kolom tetap dan celah antar komponen baik horisontal maupun vertikal juga tidak berubah.