Semua layout manager di Java mengimplementasikan interface LayoutManager. Layout manager adalah obyek yang dibuat atau dikonstruksi dari kelas FlowLayout, GridLayout, BorderLayout, BoxLayout, CardLayout, GroupLayout atau SpringLayout. FlowLayout adalah layout manager default untuk kelas Applet, Panel dan JPanel. BorderLayout adalah layout manager default untuk kelas JFrame dan JApplet.
Obyek dari kelas BorderLayout dibagi menjadi lima area yang masing-masing diwakili lima konstanta yaitu BorderLayout.PAGE_START, BorderLayout.PAGE_END, BorderLayout.LINE_START, BorderLayout.LINE_END dan BorderLayout.CENTER. Container classes seperti JFrame dan JApplet menggunakan BorderLayout sebagai layout default. Berikut ini adalah konstruktor dari kelas BorderLayout:
Tabel Konstruktor Kelas BorderLayout
Konstruktor | Keterangan |
---|---|
BorderLayout() | Mengkonstrusi obyek BorderLayout tanpa menentukan ukuran gap (celah). |
BorderLayout(int horizontalGap, int verticalGap) | Mengkonstruksi obyek BorderLayout dengan menentukan ukuran gap (celah) diantara komponen. |
Untuk meletakkan komponen ke dalam content pane, digunakan metoda add(Component component, int area). Bila wadah komponen dari kelas JFrame atau JApplet, Anda tidak perlu menentukan layout manager karena secara default telah menggunakan kelas BorderLayout. Anda cukup mengatur gap (celah), baik horisontal dan vertikal menggunakan metoda setHgap(int hGap) dan setVgap(int vGap).
Mengatur atau menyusun komponen Java di container classes memang tidak mudah. Anda tidak cukup menggunakan layout manager. Untuk mengatur atau menyusun komponen Java yang sesuai dengan keinginan, Anda dapat menggunakan bantuan kelas JPanel.
Berikut ini adalah contoh program menggunakan layout manager kelas BorderLayout. Lima obyek tombol kelas JButton diletakkan ke dalam content pane dari obyek kelas DemoBorderLayout 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 | // Nama file : DemoBorderLayout.java // Mendemonstrasikan penggunaan layout manager BorderLayout // Mengimpor kelas import javax.swing.JFrame; import javax.swing.JButton; import java.awt.Container; import java.awt.BorderLayout; // Deklarasi kelas public class DemoBorderLayout extends JFrame { public DemoBorderLayout() { // Border layout adalah default untuk // content pane dari kelas JFrame Container container = getContentPane(); container.add(new JButton("PAGE_START"), BorderLayout.PAGE_START); container.add(new JButton("PAGE_END"), BorderLayout.PAGE_END); container.add(new JButton("LINE_START"), BorderLayout.LINE_START); container.add(new JButton("LINE_END"), BorderLayout.LINE_END); container.add(new JButton("CENTER"), BorderLayout.CENTER); } // Metoda main public static void main(String[] args) { DemoBorderLayout frame = new DemoBorderLayout(); frame.setTitle("Kelas DemoBorderLayout"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(310, 155); frame.setVisible(true); } } |
Dari contoh program di atas, layout manager tidak ditentukan karena secara default menggunakan layout manager BorderLayout. Tampak dari hasil eksekusi program, celah horisontal dan vertikal antara komponen satu dengan komponen yang lain tidak tampak. Kelima tombol dari kelas JButton memenuhi semua area content pane.
Obyek kelas JButton yang ditempatkan di area PAGE_START dan PAGE_END merentang secara horisontal memenuhi content pane, obyek kelas JButton yang ditempatkan di area LINE_START dan LINE_END merentang secara vertikal dan obyek kelas JButton yang ditempatkan di area CENTER akan merentang secara horisontal dan vertikal.
Gap (celah) antar komponen dapat diatur melalui nilai parameter horizontalGap dan verticalGap saat obyek kelas BorderLayout dikonstruksi. Anda juga dapat memperindah komponen dengan memberi warna serta menentukan dimensinya.