Tải bản đầy đủ (.ppt) (17 trang)

Báo cáo môn MÔN LẬP TRÌNH JAVA CÁC KIỂU THIẾT KẾ LAYOUT TRONG GUI

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (335.26 KB, 17 trang )

Giảng viên: Huỳnh Ngọc Tín
Nhóm thực hiện:
Nguyễn Tuấn Đạt 08520084
Nguyễn Hồng Danh 08520055
Nguyễn Huỳnh Đại Thành 08520353
1. Khái quát về LayoutManager
2. Mối liên hệ giữa Container và
Component trong Layout
3. CardLayout
4. Tài liệu tham khảo
Layout: là cách bố trí các component vào
container.
Việc quản lý vị trí của các component này là
không hề dễ dàng.
LayoutManager: là interface hỗ trợ mô tả về
các layout.
Gói AWT trong Java có sẵn một số layout:
FlowLayout, BorderLayout, GridLayout,
GridBagLayout, CardLayout,…
Trong Layout, Container sẽ chứa những
Component khác trong nó.
Thông thường, mỗi chương trình đều có
một Container lớn nhất, chứa tất cả
Component khác, gọi là Frame.
Trong Frame sẽ chứa những Component
khác nhau. Những Component này có
thể là một Component hoặc cũng có thể
là một Container con chứa những
component khác.
Một Container cũng có thể là một trong
những Component trong một Container


lớn hơn.
ParentContainer
ChildContainer
Comp
Comp
Comp
3.1 Định nghĩa CardLayout:
CardLayout là một bố cục đặc biệt. Nó chỉ
hiển thị một thành phần tại một thời
điểm.
CardLayout có thể chia làm 2 phần chính:
-
Phần Card: là thành phần chứa nội dung
được hiển thị.
-
Phần Control: là thành phần để điều
khiển nội dung hiển thị của phần Card.
Ta có thể duyệt qua các Card trong bố
cục nếu biết được tên của nó.
3.2 Thiết lập CardLayout:
Để thiết lập Layout hiện hành của chương
trình sử dụng CardLayout, ta dùng hàm
setLayout() như sau:
lm = new CardLayout();
setLayout (lm);
3.3 Khởi tạo một CardLayout:
Để khởi tạo một bố cục CardLayout, ta dùng phương
thức Public CardLayout() hoặc Public CardLayout(int
hgap, int vgap).
Public CardLayout(): Khởi tạo một CardLayout với

khoảng cách biên ngang và biên dọc bằng 0. Trong
CardLayout không có khoảng cách giữa các
Component vì chúng không được hiển cùng thời
điểm.
Public CardLayout(int hgap, int vgap): Khởi tạo
CardLayout với khoảng cách biên ngang, biên dọc
bằng với hgap, vgap.
3.4 Một số phương thức trong CardLayout:
Public int getHgap(), Public int getVgap(): trả về Hgap và
Vgap tương ứng của CardLayout.
Public int setHgap(), Public int getVgap(): thay đổi Hgap,
Vgap tương ứng, sau khi thay đổi phải gọi hàm
Validate() của Container tương ứng.
Public void first (Container parent): chuyển đến
component đầu tiên trong container parent.
Public void last (Container parent): chuyển đến
component cuối cùng trong container parent.
3.4 Một số phương thức trong CardLayout:
Public void next(Container parent): chuyển đến
component tiếp theo trong Container parent, nếu
component hiện tại là component cuối cùng, chuyển
về Component đầu tiên.
Public void previous(Container parent): chuyển đến
component trước đó trong Container parent, nếu
component hiện tại là component đầu tiên sẽ chuyển
về component cuối cùng.
3.4 Một số phương thức trong CardLayout:
Public void show(): hiển thị component hiện tại, chỉ được
dùng khi đã chỉ định tên của thành phần lúc thêm vào
trong Container.

Public void show(Container parent, String name): hiển thị
các component trong Container parent đã được đặt
tên khi thêm vào trong Container, nếu không có thành
phần nào thì không có gì xảy ra.
3.5 Xây dựng một chương trình với CardLayout:
Đầu tiên ta khởi tạo một CardLayout:
CardLayout cl = new CardLayout();
Thiết lập CardLayout làm layout chính:
setLayout(cl);
Add các thành phần của CardLayout:
Add(“<tên component>”, <component tương ứng>);
Vd: Panel pA = new Panel();
add(“One”, pA);
3.5 Xây dựng một chương trình với CardLayout:
Sau khi xây dựng xong một cấu trúc CardLayout, ta thiết
lập một cơ chế điều khiển hiển thị nội dung trong
CardLayout bằng các lệnh :
cl.next(<Container>);
cl.previous(<Container>);
cl.last (<Container>);
cl.first (<Container>);
show();
….
3.5 Xây dựng một chương trình với CardLayout:
Vd: Ta dùng hàm public boolean action(Event e, Object o)
để bắt sự kiện điều khiển như sau:
public boolean action (Event e, Object o)
{
cl.next(this);
return true;

}
3.6 Demo:
THE END

×