Java GUI memiliki 2 package: abstract windows kit (AWT) dan Swing toolkit. Komponen dari package Swing, memiliki prefix J di depannya (misal JFrame, JWindows). Yang kemaren sudah dipelajari, adalah komponen dari package Swing.
JFrame yg kemaren kita pelajari adalah salah satu top level container pada Java GUI. Container adalah tempat dimana widget berada, seperti button, text area, radio button, dll.

Lalu untuk intermediate level container (container level menengah), beberapa diantaranya adalah JPanel, JOptionsPane, JScrollPane, dan JSplitPane. Dalam postingan ini akan dibahas JPanel berikut dengan berbagai macam Layout Manager. Untuk yg pertama dibahas: FlowLayout. Untuk memahami seperti apa itu FlowLayout, kita harus mencoba untuk code, tidak cukup hanya dengan melihat pengertian, tapi juga harus learning by doing.

Untuk belajar, mari kita coba membuat kalkulator pertambahan. Ingat: Hanya GUI-nya saja. Kita belum belajar tentang bagaimana program kita membaca tombol mana yang dieksekusi (untuk ini, nanti akan dibahas pada bagian ActionListener). Untuk memulai, silakan eksekusi code program berikut:

import javax.swing.*;
import java.awt.FlowLayout;

public class SimpleCalc{
	public static void main(String[] args){
		JPanel windowPane = new JPanel();

		FlowLayout f1 = new FlowLayout();
		windowPane.setLayout(f1);

		JLabel label1 = new JLabel("operand 1 = ");
		JTextField angka1 = new JTextField(10);
		JLabel label2 = new JLabel("operand 2 = ");
		JTextField angka2 = new JTextField(10);
		JLabel label3 = new JLabel("hasil = ");
		JTextField hasil = new JTextField(10);
		JButton go = new JButton("Sum");

		windowPane.add(label1);
		windowPane.add(angka1);
		windowPane.add(label2);
		windowPane.add(angka2);
		windowPane.add(label3);
		windowPane.add(hasil);
		windowPane.add(go);

		JFrame frame = new JFrame();
		frame.setContentPane(windowPane);

		frame.setSize(500,100);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}
}

Setelah di run, akan tampil seperti ini:

005

Hm.. sekarang coba perlebar ukuran windows-nya, pasti layout komponennya berubah. Posisi komponennya menyesuaikan dengan lebar aplikasi tadi. Itulah sifat dari Flow Layout.

006

Pada layout ini, kita tidak mensetting letak masing-masing komponen, karena posisi komponen bersifat dinamis, tergantung ukuran aplikasi-nya.. kalau dilebarin maka semua komponen akan terletak pada 1 baris ke samping. Tapi kalau kita setting posisi-nya seperti pada postingan sebelumnya tentang JFrame, maka komponen tersebut akan berada pada koordinat static.

Masih ada layout lainnya seperti Grid Layout, dll. Nanti akan dibahas pada postingan berikutnya.