[Lập trình Java] FlowLayout – BoxLayout trong JavaSwing

JavaSwing
FlowLayout
BoxLayout

Khái niệm

là một cách sắp xếp các đối tượng trên một dòng, từ trái qua phải. Dùng FlowLayout khi muốn sắp xếp các đối tượng liên tiếp nhau trên một dòng.
Khi thay đổi kích thước làm chiều rộng của JFrame không đủ chứa các JButton trên thì chúng sẽ tự động được đẩy xuống dòng dưới (xem bài tập ví dụ cụ thể bên dưới).

Boxlayout là một Layout cho phép sắp xếp các control trên một hàng ngang hoặc trên một cột thẳng đứng.
Khi sắp xếp theo hàng ngang thì khác với FlowLayout, các control sẽ không tự động xuống dòng nếu như không đủ chỗ.

Các hàm khởi tạo

FlowLayout(): Khởi tạo FlowLayout với các đối tượng được căn lề mặc định là CENTER (căn giữa) và khoảng cách giữa các đối tượng theo chiều ngang và dọc mặc định là 5 đơn vị.
FlowLayout(int align): Tương tự như trên nhưng chỉ định vị trí căn lề như: CENTER, LEFT, RIGHT, LEADING, TRAILING và chỉ ra cách căn trái, phải tương đối theo sự sắp xếp của Container.
FlowLayout(int align, int hgap, int vgap): Với cách khởi tạo này chúng ta sẽ tự đặt cách căn lề và khoảng cách ngang (hgap), dọc (vgap) giữa các đối tượng.

Đầu tiên, cần khởi tạo Container (JPanel):
[JPanel panel = new JPanel(new LayoutManager());
Sau đó, khởi tạo BoxLayout:
BoxLayout(Container target, int axis): Tạo BoxLayout với cách bố trí là axis.
Và cuối cùng dùng hàm setLayout để đặt Layout cho JPanel.
Việc sắp xếp các đối tượng theo chiều ngang hay dọc phục thuộc vào đối số axis, X_AXIS sẽ sắp xếp theo chiều ngang, Y_AXIS là theo chiều dọc.