Bài 36: Layout Manager trong Java AWT - Lập trình Java cơ bản

Đăng bởi: Admin | Lượt xem: 4092 | Chuyên mục: Java


Layout manager điều khiển cách trình bày vật lý của các phần tử GUI như là button, textbox, option button v.v… Một layout manager tự động bố trí các thành phần này trong container.
Tất cả các thành phần mà chúng ta vừa tạo sử dụng layout manager mặc định. Cho ví dụ, ‘FlowLayout’ là cách trình bày mặc định của một applet. Layout manager này sẽ tự động sắp xếp các thành phần. Tất cả các thành phần được đặt trong một container, và được sắp xếp đến layout manager tương ứng. Layout manager được thiết lập bằng phương thức
được gọi là ‘setLayout()’.
Bây giờ chúng ta sẽ tìm hiểu chi tiết các cách trình bày và cách bố trí các thành phần của ta vào những vị trí mong muốn.

1.  FlowLayout manager

‘FlowLayout’ là layout manager mặc định cho các applet và các panel. Các thành phần được xắp xếp từ góc trái trên đến góc phải dưới của màn hình. Khi một số thành phần được tạo, chúng được xắp xếp theo hàng, từ trái sang phải.
Ví dụ:
import java.awt.*;
class Fltest extends Frame{

Button b1=new Button(“Center Aligned Button 1”);
Button b2=new Button(“Center Aligned Button 2”);
Button b3=new Button(“Center Aligned Button 3”);
public Fltest(String title)
{
super(title);
setLayout(new FlowLayout(FlowLayout.CENTER));
add(b1);
add(b2);
add(b3);
}
public static void main(String args[])
{
Fltest t=new Fltest(“Flow Layout”);
t.setSize(300,200);
t.show();
}
}
Kết quả thu được:

2. BorderLayout Manager

‘BorderLayout’ là layout manager mặc định cho ‘Window’, ‘Frame’ và ‘Dialog’. Layout này sắp xếp tối đa 5 thành phần trong một container. Những thành phần này có thể được đặt ở các hướng ‘North’, ‘South’, ‘East’, ‘West’ và ‘Center’ của container.
  1.    NORTH – Đặt ở đỉnh của container.
  2.    EAST – Đặt phía bên phải của container.
  3.    SOUTH – Đặt ở phía dưới của container.
  4.    WEST – Đặt phía bên trái của container.
  5.    CENTER – Đặt ở giữa của container.
Để thêm một thành phần vào vùng ‘North’, bạn sử dụng cú pháp sau:
Button b1=new Button(“North Button”); // khai báo thành phần
setLayout(new BorderLayout()); // thiết lập layout
add(b1,BorderLayout.NORTH); // thêm thành phần vào layout
add(b2,BorderLayout.CENTER); // thêm thành phần vào vùng ‘center’
Kết quả thu được:

3. CardLayout Manager

CardLayout có thể lưu trữ một ngăn xếp (stack) các layout. Mỗi layout giống như một bảng (card). Bảng thường là đối tượng Panel. Một thành phần độc lập như button sẽ điều khiển cách trình bày các bảng ở lớp trên cùng.
Đầu tiên, chúng ta bố trí tập hợp các thành phần được yêu cầu trên các panel tương ứng. Mỗi panel sẽ được bố trí vào các layout khác nhau.
Ví dụ:
import java.awt.*;
import java.applet.*;
/**/
public class CardLayoutDemo extends Applet
{
Button back,next;
Label lbl1,lbl2,lbl3,lbl4;
TextField other1;
Panel p1,first,second,third,fourth;
CardLayout c1;
public void init()
{
back=new Button(“Back”);
next=new Button(“Next”);
add(back);
add(next);
c1=new CardLayout();
p1=new Panel();
p1.setLayout(c1);// Set panel layout to CardLayout
lbl1=new Label(“First”);
lbl2=new Label(“Second”);
lbl3=new Label(“Third”);
lbl4=new Label(“Fourth”);
//First panel
first=new Panel();
first.add(lbl1);
//Second panel
second=new Panel();
second.add(lbl2);
//Third panel
third=new Panel();
third.add(lbl3);
//Fourth panel
fourth=new Panel();
fourth.add(lbl4);
//Add panels to the card deck panel
p1.add(“1”,first);
p1.add(“2”,second);
p1.add(“3”,third);
p1.add(“4”,fourth);
add(p1);
}
}
Kết quả thu được:

4.  GridLayout Manager

‘GridLayout’ trợ giúp việc chia container vào trong ô lưới. Các thành phần được đặt trong các dòng và các cột. Mỗi khung lưới nên chứa ít nhất một thành phần. Một khung lưới được sử dụng khi tất cả các thành phần có cùng kích thước.
Ví dụ:
import java.awt.*;
class Gltest extends Frame
{
Button btn[];
String str[]={“1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”};
public Gltest(String title)
{super(title);
setLayout(new GridLayout(3,3));
btn=new Button[str.length];
for (int I=0; I
Kết quả thu được:
Như vậy, thông qua bài này, chúng ta đã cùng tìm hiểu về các Layout Manager thông dụng trong gói Java AWT. Cảm ơn các bạn đã đọc.
Bài tiếp theo: Xử lý sự kiện trong Java AWT >>
vncoder logo

Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!