Banner Java

Mengatur Letak Komponen Menggunakan Kelas BorderLayout

Komponen Java lain yang terletak di kelompok kelas-kelas wadah (container classes) seperti kelas Container, JFrame, JApplet atau JPanel (baca artikel Pengantar Pemrograman Grafis Java: Kelas Container) dapat disusun sesuai keinginan. Untuk mengatur tata letak komponen di kelas-kelas wadah, Anda perlu menggunakan layout manager. Semua layout manager mengimplementasikan interface LayoutManager. Beberapa contoh layout manager 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.

Obyek dari kelas BorderLayout dibagi menjadi lima area. Lima area tersebut diwakili oleh lima konstanta kelas BorderLayout 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 manager default. Berikut ini adalah konstruktor dari kelas BorderLayout:

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 obyek content pane, dapat dilakukan dengan metoda add(Component component, int area). Apabila wadah atau tempat komponen adalah kelas JFrame atau JApplet, Anda tidak perlu menentukan layout manager. Secara standar, content pane dari obyek kelas JFrame atau JApplet akan menggunakan layout manager ini. Anda cukup mengatur gap (celah) baik secara horisontal dan vertikal menggunakan metoda setHgap(int hGap) dan setVgap(int vGap).

Berikut ini adalah contoh program yang mendemonstrasikan penggunaan layout manager dari kelas BorderLayout. Lima buah tombol dari kelas JButton akan diletakkan ke dalam content pane dari obyek kelas DemoBorderLayout yang merupakan subclass dari kelas JFrame yang menggunakan layout manager BorderLayout.

// 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 kode program di atas, layout manager tidak ditentukan, karena secara standar (default), content pane dari frame (obyek dari kelas JFrame) menggunakan layout manager BorderLayout. Tampak dari hasil eksekusi program, celah horisontal dan vertikal antara komponen satu dengan komponen yang lain tidak tampak. Kelima tombol (obyek dari kelas JButton) memenuhi semua area content pane.

Obyek kelas JButton yang ditempatkan di area PAGE_START dan PAGE_END akan merentang secara horisontal untuk memenuhi content pane, obyek kelas JButton yang ditempatkan di area LINE_START dan LINE_END akan merentang secara vertikal dan obyek kelas JButton yang ditempatkan di area CENTER akan merentang secara horisontal dan vertikal. Celah antar komponen dapat ditentukan dengan memberi nilai pada parameter horizontalGap dan verticalGap saat obyek kelas BorderLayout dikonstruksi. Anda juga dapat memperindah komponen dengan memberi warna serta menentukan dimensinya.

Menggunakan kelas BorderLayout

Baca artikel terkait lainnya:

Untuk memperbaiki mutu konten, Anda dapat berpartisipasi dengan cara melaporkan apabila menemukan kesalahan ketik, kata-kata rangkap, redaksi kurang pas (jelas), gambar pendukung tidak ada dan sebagainya melalui form Kontak Kami untuk mendapatkan perbaikan. Terima kasih atas kerjasamanya.

Hindro HindriantoHindro adalah pendiri sekaligus admin termasmedia.com dan topikit.com, blog online yang mengulas teknologi informasi. Dunia web mulai ditekuni tahun 2012 dengan mempelajari CMS Joomla dan Wordpress. Beberapa buku yang sekarang dipelajari antara lain PHP, HTML5, ASP.NET 4.5, JavaScript, CSS3, MySQL, Adobe Dreamweaver, Adobe Photoshop dan Adobe Flash.