Chương 6
Lập trình Menu với AWT
Mục tiêu
•
Định nghĩa được Menu là gì?
•
Biết cách tổ chức hệ thống menu của ứng
dụng.
•
Biết cấu trúc các lớp liên quan đến menu
trong gói java.awt
•
Biết viết event handler cho hệ thống
menu.
Nội dung
6.1- Ôn tập.
6.2- Hệ thống Menu
6.3- Cấu trúc một hệ menu
6.4- Các tính chất của một mục chọn.
6.5- Gợi ý về thiết kế hệ thống menu cho ứng
dụng.
6.6- Các lớp liên quan đến menu trong gói awt.
6.7- Phím nóng của MenuItem
6.8- Chuỗi lệnh kết hợp
6.9- Minh họa.
6.1- Ôn tập
•
Gói java.awt chứa các lớp giúp tạo ra GUI.
•
Gói java.awt.event chứa các lớp về Event Object, chứa
các EventListener interfaces.
•
Object Status- Trạng thái : Tập trị thuộc tính của đối
tượng.
•
Event: Tình huống có 1 đối tượng bị đổi trạng thái.
•
Event object: Đối tượng được phát sinh động khi 1 object
bị thay đổi trạng thái.
•
Event source: Đối tượng tạo ra event object.
•
Listener : Đối yượng chờ và xử lý sự kiện cho event
source.
Ôn tập ...
•
Cấu trúc quản lý event của một component:
(1) Tạo Listener.
(2) Viết code cho event handler.
(3) Component.addXXXListeneer(Listener);
•
Listener có thể là:
(1) Chính Container chứa component.
(2) Một lớp inner của lớp Container.
(3) Một đối tượng xxxListener + Code event handler là
thuộc tính của Container.
(4) Một đối tượng thuộc lớp xxxAdapter + Code Event
handler.
6.2- Hệ thống Menu là gì?
•
Menu system- Hệ thống menu: Tập các
mục chọn chức năng của ứng dụng được
tổ chức phù hợp.
•
Menu Item : Một mục chọn dạng chuỗi ký
tự trong tập mục chọn.
•
Hệ menu đơn giản: một Choice, một danh
sách nút lệnh.
•
Hệ menu phức tạp: Menu phân cấp.
6.3-Cấu trúc một hệ menu
MenuBar
Các Menu
MenuItem
Thanh
phân
cách
6.4- Tính chất của một menu Item
•
Label-Chuỗi mô tả.
•
Shortcut key- Phím nóng được kết hợp.
•
Enable/ Disable- Cho user tác động?
•
Action Command- Chuỗi tên lệnh được
kết hợp.
•
Ủy thác xử lý sự kiện : ActionListener
6.5- Gợi ý về thiết kế hệ thống menu
Bài toán có nhiều tác vụ
Phân nhóm
các tác vụ
Nhóm 1 Nhóm 2 Nhóm 3 (MenuBar chứa các Menu)
Tác vụ 11
Tác vụ 12
Tác vụ 13
Tác vụ 14
Tác vụ 21
Tác vụ 22
Tác vụ 23
Tác vụ 31
Tác vụ 32
Tác vụ 33
Tác vụ 34
Tác vụ 35
Tác vụ 36
Một Menu chứa
các MenuItem
Có thể thêm các thanh
phân cách (Separator)
để phân nhóm nhỏ hơn
6.6- Các lớp liên quan đến menu
trong gói AWT
6.6.1-Lớp MenuComponent
•
Là lớp cha của các đối tượng menu
•
Constructor: MenuComponent(void)
6.6.2- Lớp MenuBar- Thanh ngang
•
Contructor:
MenuBar() – Tạo menu bar trống