YOMEDIA
Lập trình Java căn bản - Chương 6 Lập trình menu với AWT ( tiếp)
Chia sẻ: Nguyễn Doãn Mạnh Đoàn
| Ngày:
| Loại File: PDF
| Số trang:15
158
lượt xem
8
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Mục tiêu bài học: đị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ủa lớp liên quan đến menu trong gói java.
AMBIENT/
Chủ đề:
Nội dung Text: Lập trình Java căn bản - Chương 6 Lập trình menu với AWT ( tiếp)
- 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.
1
- 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.
2
- Ô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.
3
- 6.3-C u trúc m t h menu
MenuItem
MenuBar Các Menu
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
4
- 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 21 Tác v 31
Tác v 11
Tác v 22 Tác v 32
Tác v 12
Tác v 23 Tác v 33
Tác v 13 Có th thêm các thanh
Tác v 14 Tác v 34 phân cách (Separator)
Tác v 35 ñ phân nhóm nh hơn
M t Menu ch a Tác v 36
các MenuItem
6.6- Các l p liên quan ñ n menu
trong gói AWT
5
- 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
6
- 6.6.3- MenuItem – m t m c ch n
• M t m c ch n có th l i là m t nhóm. Thí
d :
MenuItem constructors
MenuItem()
Constructs a new MenuItem with an
empty label and no keyboard shortcut.
MenuItem(String label)
Constructs a new MenuItem with the
specified label and no keyboard shortcut.
MenuItem(String label, MenuShortcut s)
Create a menu item with an
associated keyboard shortcut
7
- MenuItem methods
6.6.4- L p Menu – Nhóm MenuItem
• L p con c a l p MenuItem
• Constructors:
Menu()
Constructs a new menu with an empty label.
Menu(String label)
Constructs a new menu with the specified label.
Menu(String label, boolean tearOff)
Constructs a new menu with the specified label,
indicating whether the menu can be torn off.
8
- Menu class methods
6.6.5- L p CheckboxMenuItem
• CheckboxMenuItem ch hi n th khi m c
này ñư c ch n.
• Constructors:
CheckboxMenuItem()
CheckboxMenuItem(String label)
CheckboxMenuItem(String label,
boolean state)
9
- CheckboxMenuItem methods
• Ngoài các methods k th t l p MenuItem, có thêm
các methods:
void addItemListener(ItemListener l)
void addNotify()
getListeners
(Class listenerType)
Object getSelectedObjects()
boolean getState()
String paramString()
void removeItemListener(ItemListener )
void setState(boolean b)
6.6.6- L p PopupMenu
• Là menu s xu t khi ta kích chu t ph i.
• Là l p con c a l p java.awt.Menu
• Constructors:
PopupMenu() - T o ñ i tư ng popup menu
tr ng.
PopupMenu (String label) - T o ñ i tư ng
popup menu có n i dung
10
- PopupMenu methods
Minh h a t o PopupMenu...
class PopupMenuDemo extends Frame
{
PopupMenu pMenu = new PopupMenu();
MenuItem mnuCopy = new MenuItem("Copy");
MenuItem mnuCut = new MenuItem("Cut");
MenuItem mnuPaste = new MenuItem("Paste");
PopupMenuDemo() // Constructor of a frame
{ ...
pMenu.add(mnuCopy); // setup popup menu
pMenu.addSeparator();
pMenu.add(mnuCut);
pMenu.addSeparator();
pMenu.add(mnuPaste);
// Add popup menu to the frame
this.add(pMenu);
11
- Minh h a code hi n th PopupMenu
// In constructor of a frame
// Add mouse Listener for showing popup menu
addMouseListener ( new MouseAdapter()
{ public void mouseReleased(MouseEvent e)
{ if (e.isPopupTrigger()) // check right clicked
pMenu.show(e.getComponent(),
e.getX(),e.getY()); The
} right-clicked
position
} );
Minh h a code qu n lý bi n c cho các m c
ch n trong popupmenu
ActionListener actListener = new ActionListener()
{ public void actionPerformed(ActionEvent e)
{ Object src=e.getSource();
if (src==mnuCopy)
LblStatus.setText("menu Copy is selected");
if (src==mnuCut)
LblStatus.setText("menu Cut is selected");
if (src==mnuPaste)
LblStatus.setText("menu Paste is selected");
}
};
mnuCopy.addActionListener(actListener);
mnuCut.addActionListener(actListener);
mnuPaste.addActionListener(actListener);
12
- 6.7 Phím nóng c a MenuItem
• Shortcut Key: T h p Ctrl+ Phím s tác ñ ng
vào 1 m c ch n tương t như kích chu t vào 1
m c menu.
• L p java.awt.MenuShortcut giúp mô t các phím
nóng.
• L p java.awt.event.KeyEvent ñ nh nghĩa s n
các phím
• n ñ nh phím nóng cho MenuItem:
MenuShortcut CtrlN = new MenuShortcut(KeyEvent.VK_N));
mnuNew.setShortcut(CtrlN); // Ctrl + N
mnuOpen.setShortcut(new MenuShortcut(KeyEvent.VK_O));
6.8- Chu i l nh k t h p
• Action Command string: M t chu i ñư c gán cho 1 nút
l nh hay 1 m c menu.
mnuNew.setActionCommand("New Command");
• Các command string c a các ñ i tư ng ph i khác
nhau
• Có th qu n lý s ki n b ng command string.
public void actionPerformed(ActionEvent e)
{ String CommandStr= e.getActionCommand();
if (CommandStr.equals("New Command"))
{
}
.....
}
13
- 6.9-Minh h a
• Minh h a 1- T o menu bar, thi t l p
Shortcut key, qu n lý các m c ch n b ng
e.getSource()
• Minh h a 2- T o menu bar, qu n lý cac1
m c ch n b ng e.getActionCommand()
• Minh h a 3- T o và qu n lý PopupMenu
Minh h a 1
Demo
14
- Minh h a 2-
V n thí d trư c nhưng
Qu n lý s ki n v i Action Command
Demo
Minh h a 3- PopupMenu
Demo
15
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
ERROR:connection to 10.20.1.98:9315 failed (errno=111, msg=Connection refused)
ERROR:connection to 10.20.1.98:9315 failed (errno=111, msg=Connection refused)
Đang xử lý...