Memahami Layout Manager: Box Layout Pada GUI Java

Box layout memungkinkan Anda untuk menata beberapa komponen secara vertikal ataupun horisontal. Komponen-komponen tersebut tidak akan tumpang tindih. Jadi misalnya ketika ukuran frame di ubah, komponen yang diatur  vertikal akan tetap vertikal.

Dengan menggunakan BoxLayout daripada FlowLayout atau GridLayout maka Anda bisa menata properti alignment (perataan) sumbu x dan y dari setiap komponen serta ukuran maksimumnya. Selain itu, BoxLayout juga jauh lebih mudah digunakan daripada GridBagLayout.

BoxLayout memiliki satu konstruktor:

  • public BoxLayout(Container target, int axis)

Kalau Anda perhatikan, konstruktornya memiliki 2 argumen.

Pertama adalah container yang terkait dengan instance layout manager. Kedua adalah arah layout dengan BoxLayout.X_AXIS untuk arah dari kiri ke kanan, sedangkan BoxLayout.Y_AXIS untuk arah dari atas ke bawah.

Anda bisa memilih sumbu kordinat, yaitu:

  • X_AXIS
  • Y_AXIS
  • LINE_AXIS
  • PAGE_AXIS

Sebenarnya box layout ini sama seperti flow layout namun dengan fitur yang lebih banyak.

Kemudian, setelah Anda membuat instance dari BoxLayout, anda bisa dengan mudah mengaitkan container dengan layout manager, misalnya seperti berikut ini:

Anda bisa menambahkan komponen ke container dengan method add(Component component) atau add (Component component, int index).

Saat menata container, BoxLayout manager akan mencoba memenuhi ukuran minimum dan maksimum dari komponen dalam container dan keselarasan dari sumbu x dan sumbu y dengan nilai perataan berkisar dari 0,0f hingga 1,0f. Pengaturan alignment adalah konstanta floating-point, bukan tipe double, oleh karena itu diperlukan penggunaan f.

Seluruh subclass Component punya alignment sumbu x dari Component.CENTER_ALIGNMENT dan alignment sumbu y pada Component.CENTER_ALIGNMENT.

Namun, seluruh subclass AbstractButton dan JLabel punya alignment sumbu x default dari Component.LEFT_ALIGNMENT.

Tabel berikut ini menunjukkan konstanta yang tersedia dari Component untuk properti komponen ini yang dapat diatur dengan setAlignmentX (float newValue) atau setAlignmentY (float newValue).

PengaturanNilai
Perataan Vertikal
Component.TOP_ALIGNMENT0.0f
Component.CENTER_ALIGNMENT0.5f
Component.BOTTOM_ALIGNMENT1.0f
Perataan Horizontal
Component.LEFT_ALIGNMENT0.0f
Component.CENTER_ALIGNMENT0.5f
Component.RIGHT_ALIGNMENT1.0f

Alignment yang berbeda bekerja secara identik, kecuali dalam arah yang berbeda. Dalam perataan horizontal, ini mirip dengan paragraf kiri, tengah, atau kanan.

Berikut ini adalah contoh sederhana dari penggunaan box layout:

Output:

box-layout-Java

Menata Komponen Dengan Alignment Yang Sama

BoxLayout manager akan bertindak berbeda tergantung pada penyelarasan komponen di dalam container yang Anda dikelola.

Jika semua alignment di atur sama maka komponen dengan ukuran maksimum yang lebih kecil dari container akan disejajarkan berdasarkan pengaturan alignment.

Misalnya, ketika Anda memiliki area lebar dengan BoxLayout vertikal dan tombol kecil di dalamnya, maka perataan horizontal akan berlaku untuk tombol kiri, tengah, atau kanan.

Baca Juga:  Tutorial Java Swing Layout Manager

Berikut ini adalah contohnya:

Output:

Baca Juga:  Memahami Layout Manager: CardLayout Pada GUI Java
box-layout-gui-java-layout
Tiga BoxLayout container pada sumbu-x atau vertikal yang memiliki alignment horisontal sama.

Sedangkan jika BoxLayout pada sumbu-x memiliki alignment yang sama maka komponen akan posisikan pada atas, tengah, dan bawah pada container.

Lihat contoh berikut:

Output:

box-layout-x-axis-alignment

 

 

Leave a Comment