Semua layout manager di Java mengimplementasikan interface LayoutManager. Contoh dari layout manager Java adalah kelas FlowLayout, GridLayout, BorderLayout, BoxLayout, CardLayout, GroupLayout dan SpringLayout. FlowLayout adalah default layout manager untuk kelas Applet, Panel dan JPanel. BorderLayout adalah default layout manager untuk content pane kelas JFrame dan JApplet.
Mengatur susunan komponen di container classes seperti obyek dari kelas JFrame sebenarnya, sulit terlebih lagi bila hanya menggunakan layout manager. Untuk dapat meletakkan komponen sesuai dengan yang diinginkan, Anda dapat menggunakan bantuan kelas JPanel.
Kelas FlowLayout adalah layout manager yang cukup sederhana. FlowLayout adalah default layout manager untuk kelas Applet, Panel dan JPanel. Berikut ini adalah konstruktor kelas FlowLayout di Java:
Tabel Konstruktor Kelas FlowLayout
Konstruktor | Keterangan |
---|---|
FlowLayout() | Mengkonstruksi obyek FlowLayout dengan alignment memusat dan ukuran celah (gap) horisontal dan vertikal adalah 5 pixel. |
FlowLayout(int align) | Mengkonstruksi obyek FlowLayout dengan penjajaran ditentukan oleh parameter align dan ukuran celah horisontal dan vertikal adalah 5 pixel. |
FlowLayout(int align, int hGap, int vGap) | Mengkonstruksi obyek FlowLayout dengan alignment (penjajaran) ditentukan oleh parameter align serta celah (gap) horisontal dan vertikal ditentukan oleh parameter hGap dan vGap. |
Berikut ini adalah contoh program Java menggunakan layout manager kelas FlowLayout. Lima obyek button kelas JButton diletakkan di content pane dari obyek kelas DemoFlowLayout yang merupakan subclass dari kelas JFrame.
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 38 39 | // Nama kelas : DemoFlowLayout.java // Mendemonstrasikan penggunaaan layout manager FlowLayout // Mengimpor kelas import javax.swing.JFrame; import javax.swing.JButton; import java.awt.Container; import java.awt.FlowLayout; // Deklarasi kelas public class DemoFlowLayout extends JFrame { public DemoFlowLayout() { // Membuat obyek layout manager FlowLayout flowLayout = new FlowLayout(FlowLayout.CENTER, 5, 10); // Memperoleh kontent pane dari frame Container container = getContentPane(); // Mengatur layout manager dari content pane container.setLayout(flowLayout); // Menambahkan lima button ke content pane container.add(new JButton("Tombol 1")); container.add(new JButton("Tombol 2")); container.add(new JButton("Tombol 3")); container.add(new JButton("Tombol 4")); container.add(new JButton("Tombol 5")); } public static void main(String[] args) { DemoFlowLayout jendela = new DemoFlowLayout(); jendela.setTitle("Kelas DemoFlowLayout"); jendela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jendela.setSize(390, 120); jendela.setVisible(true); } } |
Baris nomor 11 adalah deklarasi kelas DemoFlowLayout yang merupakan turunan dari kelas JFrame. Kelas DemoFlowLayout mempunyai sebuah konstruktor tanpa parameter yang dideklarasikan di baris nomor 13.
Di dalam konstruktor, obyek dari kelas FlowLayout dibuat menggunakan konstruktor ketiga dari tabel di atas. Parameter align diberi nilai berupa konstanta FlowLayout.CENTER untuk menempatkan komponen agar rata tengah dan nilai untuk parameter hGap dan vGap masing-masing adalah 5 dan 10.
Baris nomor 19 adalah pernyataan untuk mendapatkan content pane dari frame. Content pane adalah obyek dari kelas java.awt.Container sehingga variabel acuan yang mengacu ke obyek content pane dideklarasikan dengan tipe kelas Container.
Content pane digunakan sebagai wadah atau tempat bagi komponen Java. Untuk mengatur penempatan komponen di content pane, digunakan layout manager kelas FlowLayout (baris nomor 22). Pernyataan baris nomor 25 – 29 meletakkan lima obyek kelas JButtom ke dalam content pane.
Baris nomor 33, adalah pernyataan untuk membuat obyek kelas DemoFlowLayout. Acuan ke obyek kelas DemoFlowLayout kemudian diberikan ke variabel acuan frame. Beberapa metoda yang diwarisi dari superclass dan metoda kelas JFrame sendiri seperti setTitle, setDefaultCloseOperation, setSize dan setVisible digunakan untuk mengatur tampilan obyek frame.
Anda dapat membuat obyek dari kelas tanpa harus mendeklarasikan variabel acuan yang akan digunakan untuk menerima obyek dari kelas tersebut. Di Java, deklarasi semacam ini disebut dengan anonymous object. Anonymous object sering digunakan sebagai argumen parameter sebuah metoda.
Sebagai contoh adalah pernyataan membuat obyek kelas JButton di baris nomor 25 – 29. Contoh lainnya adalah pernyataan di baris nomor 16 dan 22 yang dapat disingkat menjadi pernyataan bawah ini.
container.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 10));
Nilai parameter align dari konstruktor kelas FlowLayout dapat berupa salah satu dari tiga konstanta bernilai int yaitu FlowLayout.CENTER, FlowLayout.LEFT atau FlowLayoutCenter. Bila Anda merubah nilai parameter align di baris nomor 16 dengan FlowLayout.RIGHT, maka diperoleh hasil eksekusi program seperti gambar di bawah ini.