Cách trình bày GridBag Layout cũng trình bày các đối tượng tương tự như Grid Layout: Các đối tượng sẽ được định vị theo vị trí các ô (cell) của một khung lưới (grid). Tuy nhiên, GridBag cho phép ta định kích thước của đối tượng sẽ chiếm bao nhiêu ô và sẽ được đặt ở vị trí nào trong khung lưới.
3.2/- Trình bày Grid Layout
Cách trình bày Grid Layout sẽ sắp xếp các đối tượng theo dạng bảng, được xác định số hàng và số cột. Phương thức cơ bản:
♦ GridLayout(int, int): Khởi tạo một đối tượng trình bày. Hai tham số đầu vào lần lượt là số hàng và số cột của grid trình bày.
♦ GridLayout(int, int, int, int): Khởi tạo một đối tượng trình bày, hai tham số đầu xác định số hàng và số cột trình bày. Hai tham số sau xác định khoảng cách giữa các dòng và các cột của bảng.
Lưu ý:
♦ Khi số lượng đối tượng được chèn nhiều hơn vào frame, ta muốn chương trình tự tính số hàng, hoặc tự tính số cột hiển thị, thì ta để tham số tương ứng là 0.
Ví dụ:
sẽ cố định số hàng trình bày là 3, số cột là tuỳ thuộc vào số đối tượng trong frame.
sẽ cố định số cột là 2, số dòng là mềm dẻo theo số các đối tượng trong frame.
Chương trình 6.13 minh hoạ cách trình bày grid layout: Tạo ra một dãy 10 nút nhấn và gắn vào một frame theo kiểu grid layout.
Chương trình 6.13
Hình 6.12: Kết quả demo Grid layout.
3.3/- Trình bày Border Layout
Cách hiển thị Border Layout sẽ chia frame thành 5 vùng cố định và tự động kéo dãn các vùng sao cho chiếm hết bề mặt của frame:
♦ West: Vùng phía tây, tức là phía lề bên trái.
♦ East: Vùng phía đông, tức là phía lề bên phải.
♦ North: Vùng phía bắc, tức là phía lề trên.
♦ South: Vùng phía nam, tức là phía lề dưới.
♦ Center: Vùng trung tâm, ở chính giữa frame.
Phương thức cơ bản của lớp BorderLayout:
♦ BorderLayout(): Khởi tạo một đối tượng trình bày theo cách border.
Khi một frame được trình bày theo cách border, ta có thể dùng phương thức sau để gắn các đối tượng vào các vùng của frame:
Ví dụ:
sẽ gán vào vùng trung tâm của myFrame một nút nhấn có tên là "Click".
Lưu ý:
♦ Cách trình bày border luôn chia frame thành 5 vùng xác định.
♦ Nếu gắn nhiều đối tượng vào cùng một vùng, chỉ có đối tượng gắn sau là nhìn thấy được.
♦ Nếu muốn trong một vùng chứa được nhiều đối tượng, ta có thể gắn vào mỗi vùng một Panel. Sau đó trong panel, ta chọn cách trình bày riêng cho panel và gắn các đối tượng vào panel.
Chương trình 6.14 minh hoạ cách trình bày border: Ta sẽ gắn vào năm vùng của frame năm nút nhấn khác nhau.
Chương trình 6.14
Hình 6.13: Kết quả demo Border layout.
3.4/- Trình bày GridBag Layout
Cách trình bày GridBag Layout cũng trình bày các đối tượng tương tự như Grid Layout: Các đối tượng sẽ được định vị theo vị trí các ô (cell) của một khung lưới (grid). Tuy nhiên, GridBag cho phép ta định kích thước của đối tượng sẽ chiếm bao nhiêu ô và sẽ được đặt ở vị trí nào trong khung lưới. Các phương thức cơ bản:
♦ GridBagLayout(): Khởi tạo một đối tượng trình bày theo cách gridbag.
♦ setConstraints(Component, GridBagConstraints): Đặt vị trí và kích thước của đối tượng component theo các ràng buộc trong gridbagConstraints.
GridBagConstraints
Đây là lớp chứa các ràng buộc cho các đối tượng được trình bày theo cách GridBag. Các phương thức và thuộc tính cơ bản của lớp GridBagConstraints:
♦ GridBagConstraints(): Khởi tạo một đối tượng ràng buộc của GridBag.
♦ gridx/gridy: Vị trí của cell mà ta muốn đặt đối tượng vào (theo chiều X và chiều Y).
♦ gridwidth/gridheight: Kích thước (vùng trình bày) của đối tượng (Theo chiều rộng và chiều cao).
♦ fill: Xác định cách đặt đối tượng, theo 4 cách:
- GridBagConstraints.NONE: Đối tượng không thay đổi kích thước theo các cell nó chiếm.
- GridBagConstraints.VERTICAL: Đối tượng có chiều cao kín vùng nó chiếm.
- GridBagConstraints.HORIZONAL: Đối tượng có chiều rộng kín vùng nó chiếm.
- GridBagConstraints.BOTH: Đối tượng có chiều cao và chiều rộng phủ kín vùng nó chiếm.
♦ ipadx/ipady: Định đơn vị tăng giảm kích thước của đối tượng khi khung chứa bị thay đổi kích thước (theo chiều X và chiều Y).
♦ insets: Xác định khoảng cách giữa các cell theo bốn hướng: Trên, dưới, trái, phải.
♦ anchor: Xác định vị trí neo đối tượng khi kích thước khung chứa thay đổi.
Bao gồm: NORTH, NORTHEAST, NORTHWEST, EAST, SOUTH, SOUTHEAST, SOUTHWEST.
♦ weightx/weighty: Định khoảng cách lớn ra tương đối giữa các đối tượng với nhau.
Chương trình 6.15 minh hoạ cách trình bày gridbag: Tạo ra ba nút nhấn trong frame, mỗi nút có một số ràng buộc khác nhau về kích thước và vị trí.
Chương trình 6.15