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.

Kelas FlowLayout merupakan layout manager yang sangat sederhana. FlowLayout adalah default layout manager untuk kelas Applet, Panel dan JPanel. Berikut ini adalah konstruktor kelas FlowLayout:

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 yang mendemonstrasikan penggunaan layout manager kelas FlowLayout. Lima buah button dari kelas JButton diletakkan di content pane dari obyek kelas DemoFlowLayout yang merupakan subclass dari kelas JFrame.

// 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);
   }
}

Kelas FlowLayout

Baris nomor 11 mendeklarasikan kelas DemoFlowLayout yang merupakan turunan dari kelas JFrame. Kelas DemoFlowLayout mempunyai satu buah 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 merupakan obyek dari kelas java.awt.Container sehingga variabel acuan container yang mengacu ke obyek content pane harus dideklarasikan dengan tipe kelas Container. Content pane digunakan sebagai wadah atau tempat bagi komponen Java lain. Untuk mengatur penempatan komponen di content pane, digunakan layout manager dari kelas FlowLayout (baris nomor 22). Pernyataan baris nomor 25 – 29 meletakkan lima obyek dari kelas JButtom ke dalam content pane.

Di metoda main, baris nomor 33 adalah pernyataan untuk membuat obyek dari kelas DemoFlowLayout. Acuan ke obyek dari kelas DemoFlowLayout kemudian diberikan ke variabel acuan frame. Beberapa metoda yang diwarisi dari superclass-nya dan metoda dari kelas JFrame sendiri (setTitle, setDefaultCloseOperation, setSize dan setVisible) digunakan untuk mengatur tampilan obyek frame.

Anda dapat membuat obyek suatu kelas tanpa harus mendeklarasikan variabel acuan dan memberikan acuan ke obyek tersebut ke variabel acuan. Pendeklarasikan semacam ini sering disebut dengan anonymous object. Pendeklarasian obyek semacam ini sering digunakan sebagai argumen parameter sebuah metoda. Sebagai contoh adalah pengkonstruksian obyek kelas JButton di baris nomor 25 – 29. Contoh lainnya, pernyataan di baris nomor 16 dan 22 dapat dipersingkat sebagaimana pernyataan di bawah ini.

   container.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 10));

Nilai parameter align dari konstruktor FlowLayout dapat diberi salah satu dari tiga konstanta bernilai integer yaitu FlowLayout.CENTER, FlowLayout.LEFT dan FlowLayoutCenter. Apabila Anda merubah parameter align di pernyataan baris nomor 16 dengan FlowLayout.RIGHT, maka diperoleh hasil eksekusi program seperti pada gambar di bawah ini.

Kelas FlowLayout

Baca artikel terkait lainnya: