Menu và các thành phần GUI nâng cao trong lập trình java
Nội dung bài học
JMenu
JMenuBar
JMenuItem
JPopupMenu
JToolBar
JList
JComboBox
JTable
JTree
MenuBar và ToolBar
JMenu
JMenu có thể được dùng giống như một layout ,để quản lý các Component
Chú ý:
• Chỉ được phép có 1 lựa chọn tại 1 thời điểm
• Icon có thể dùng để thay thế cho các menu items
• Hầu hết các component chuẩn đều có thể là Menu Item (radio button...)
• Có thể gán phím tắt cho các Menu Item
SingleSelectionModel Interface
Có chứa 1 mảng các lựa chọn có thể và tại mỗi thời điểm chỉ được chọn duy nhất 1 lựa chọn
SingleSelectionModel sẽ nắm giữ vị trí của chọn lựa hiện tại, nếu có sự thay đổi, ChangeEnvent sẽ được bắt
Các thuộc tính của lớp SingleSelectionModel
Khởi tạo
• JMenu()
• Khởi tạo một menu mới không có tiêu đề
• JMenu(Action a)
• Khởi tạo một menu mới với các thuộc tính lấy từ Action a.
• JMenu(String s)
• Khởi tạo một menu mới với tiêu đề là s
• JMenu(String s, boolean b)
• Khởi tạo một menu mới với tiêu đề là s và qui định là một menu tách rời hay không.
Events: ChangeEvent
• void addChangel_istener(Changel_istener listener)
• void removeChangeListener(ChangeListener listener)
Các phương thức
JMenuItem: add(Action a)
Component: add(Component c)
Component: add(Component c, int index)
JMenuItem: add(JMenuItem menuItem)
JMenuItem: add(String s)
void: addMenuListener(MenuListener l)
void: addSeparator()
void: applyComponentOrientation(ComponentOrien tation o)
PropertyChangeListener: createActionChangeListener(JMenuItem b)
JMenuItem: createActionComponent(Action a)
JMenu.WinListener: createWinListener(JPopupMenu p)
void: doClick(int pressTime)
void: fireMenuCanceled() .
void: fireMenuDeselected()
void: fireMenuSelected()
AccessibleContext: getAccessibleContext()
Component: getComponent() .
int: getDelay()
JMenuItem: getItem(int pos)
int: getItemCount()
Component: getMenuComponent(int n)
int: getMenuComponentCount()
Component[]: getMenuComponents()
MenuListener[]: getMenuListeners()
JPopupMenu: getPopupMenu()
Point: getPopupMenuOrigin()
MenuElement[]: getSubElements()
String: getUIClassID()
JMenuItem: insert(Action a, int pos)
JMenuItem: insert(JMenuItem mi, int pos)
void: insert(String s, int pos)
void: insertSeparator(int index)
boolean: isMenuComponent(Component c)
boolean: isPopupMenuVisible()
boolean: isSelected()
boolean: isTearOff()
boolean: isTopLevelMenu()
void: menuSelectionChanged(boolean isIncluded)
String: paramString()
void: processKeyEvent(KeyEvent evt)
void: remove(Component c)
void: remove(int pos)
void: remove(JMenuItem item)
void: removeAll()
void: removeMenuListener(MenuListener l)
void: setAccelerator(KeyStroke keyStroke)
void: setComponentOrientation(ComponentOrientationo)
void: setDelay(int d)
void: setMenuLocation(int x, int y)
void: setModel(ButtonModel newModel)
void: setPopupMenuVisible(boolean b)
void: setSelected(boolean b)
void: updateUI()
JMenuBar
Dùng để tạo ra 1 Menu bar theo chiều ngang của component với 0, 1 hoặc nhiều phần tử gắn lên đó
Bạn sẽ dùng phương thức add để thêm vào các JMenu trên JMenuBar
JMenubar sẽ hiển thị các JMenu theo thứ tự từ trái sang phải.
Khởi tạo
• JMenuBar()
Sự kiện
• ActionListener
Các phương thức
JMenu: add(JMenu c)
void: addNotify()
AccessibleContext: getAccessibleContext()
Component: getComponent()
int: getComponentIndex(Component c)
JMenu: getHelpMenu()
Insets: getMargin()
JMenu: getMenu(int index)
int: getMenuCount()
SingleSelectionModel: getSelectionModel()
MenuElement[]: getSubElements()
MenuBarUI: getUI()
String: getUIClassID()
boolean: isBorderPainted()
boolean: isSelected()
void: menuSelectionChanged(boolean isIncluded)
void: paintBorder(Graphics g)
String: paramString()
boolean: processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed)
void: processKeyEvent(KeyEvent e, MenuElement[] path, MenuSe lectionManager manager)
void: processMouseEvent(MouseEvent event, MenuElement[] path, MenuSelectionManager manager)
void: removeNotify()
void: setBorderPainted(boolean b)
void: setHelpMenu(JMenu menu)
void: setMargin(Insets m)
void: setSelected(Component sel)
void: setSelectionModel(SingleSelectionModel model)
void: setUI(MenuBarUI ui)
void: updateUI()
Bạn có thể gắn 1 menu bar lên frame theo 1 trong 2 cách sau:
Sử dụng setJMenuBar()
• JFrame frame = new JFrame;
• JMenuBar menuBar = new JMenuBar(); frame.setJMenuBar(menuBar);
Dùng layout để định vị
• menuBar.setBorder(new BevelBorder(BevelBorder.RAISED)); frame.getContentPane( ).add(menuBar, BorderLayout.SOUTH);
Ví dụ: Tạo 2 menu “A menu” và “Another Menu” trên JMenuBar và gán phím tắt
Ví dụ: Tạo 2 menu “A menu” và “Another Menu” trên JMenuBar và gán phím tắt
Post a Comment