Lớp JMenu trong Java Swing Mỗi cửa sổ window có một thanh trình đơn menu bar được liên kết với nó.. Các điều khiển Menu và MenuItem là lớp con của lớp MenuComponent.. Lớp JMenu biểu diễn
Trang 1Lớp JMenu trong Java Swing
Mỗi cửa sổ window có một thanh trình đơn (menu bar) được liên kết với nó Thanh trình đơn này gồm các lựa chọn có sẵn tới người dùng cuối cùng Các điều khiển Menu và MenuItem là lớp con của lớp MenuComponent
Lớp JMenu biểu diễn thành phần pull-down menu mà được triển khai từ một thanh trình đơn Cú
pháp khai báo cho lớp javax.swing.JMenu là:
implements Accessible, MenuElement
Lớp này kế thừa các phương thức từ các lớp sau:
javax.swing.JAbstractButton
javax.swing.JComponent
java.awt.Container
java.awt.Component
java.lang.Object
Lớp JMenu này có trường protected JMenu.WinListener popupListener
Các constructor của lớp JMenu
1 JMenu() : Xây dựng một JMenu mới không có text
2 JMenu(Action a) : Xây dựng một menu có các thuộc tính được nhận từ Action đã cho
3 JMenu(String s) : Xây dựng một JMenu mới với chuỗi s đã cho (như là text của nó)
4 JMenu(String s, boolean b) : Xây dựng một JMenu mới với chuỗi s đã cho (như là text của nó)
và một giá trị boolean để xác định có hay không một tear-off menu
Chương trình ví dụ lớp JMenu
SwingMenuDemo.java
Trang 2package com.vietjack.gui;
prepareGUI();
}
SwingMenuDemo swingMenuDemo = new SwingMenuDemo();
swingMenuDemo.showMenuDemo();
}
mainFrame = new JFrame("Vi du Java Swing");
mainFrame.setSize(400,400);
mainFrame.setLayout(new GridLayout( , 1));
headerLabel = new JLabel("",JLabel.CENTER );
statusLabel = new JLabel("",JLabel.CENTER);
statusLabel.setSize(350,100);
mainFrame.addWindowListener(new WindowAdapter()
public void windowClosing(WindowEvent windowEvent){
System.exit( );
Trang 3}
});
controlPanel = new JPanel();
controlPanel.setLayout(new FlowLayout());
mainFrame.add(headerLabel);
mainFrame.add(controlPanel);
mainFrame.add(statusLabel);
mainFrame.setVisible(true);
}
//tao mot menu bar
final JMenuBar menuBar = new JMenuBar();
//tao cac menu
JMenu fileMenu = new JMenu("File");
JMenu editMenu = new JMenu("Edit");
final JMenu aboutMenu = new JMenu("About");
final JMenu linkMenu = new JMenu("Links");
//tao cac item
JMenuItem newMenuItem = new JMenuItem("New");
newMenuItem.setMnemonic(KeyEvent.VK_N);
newMenuItem.setActionCommand("New");
JMenuItem openMenuItem = new JMenuItem("Open");
openMenuItem.setActionCommand("Open");
JMenuItem saveMenuItem = new JMenuItem("Save");
saveMenuItem.setActionCommand("Save");
Trang 4JMenuItem exitMenuItem = new JMenuItem("Exit");
exitMenuItem.setActionCommand("Exit");
JMenuItem cutMenuItem = new JMenuItem("Cut");
cutMenuItem.setActionCommand("Cut");
JMenuItem copyMenuItem = new JMenuItem("Copy");
copyMenuItem.setActionCommand("Copy");
JMenuItem pasteMenuItem = new JMenuItem("Paste");
pasteMenuItem.setActionCommand("Paste");
MenuItemListener menuItemListener = new MenuItemListener();
newMenuItem.addActionListener(menuItemListener);
openMenuItem.addActionListener(menuItemListener);
saveMenuItem.addActionListener(menuItemListener);
exitMenuItem.addActionListener(menuItemListener);
cutMenuItem.addActionListener(menuItemListener);
copyMenuItem.addActionListener(menuItemListener);
pasteMenuItem.addActionListener(menuItemListener);
final JCheckBoxMenuItem showWindowMenu =
new JCheckBoxMenuItem("Show About", true);
showWindowMenu.addItemListener(new ItemListener()
public void itemStateChanged(ItemEvent e) {
if(showWindowMenu.getState()){
menuBar.add(aboutMenu);
}else{
menuBar.remove(aboutMenu);
}
}
Trang 5});
final JRadioButtonMenuItem showLinksMenu =
new JRadioButtonMenuItem("Show Links", true);
showLinksMenu.addItemListener(new ItemListener()
public void itemStateChanged(ItemEvent e) {
if(menuBar.getMenu( )!= null){
menuBar.remove(linkMenu);
mainFrame.repaint();
}else{
menuBar.add(linkMenu);
mainFrame.repaint();
}
}
});
//them cac item toi cac menu
fileMenu.add(newMenuItem);
fileMenu.add(openMenuItem);
fileMenu.add(saveMenuItem);
fileMenu.addSeparator();
fileMenu.add(showWindowMenu);
fileMenu.addSeparator();
fileMenu.add(showLinksMenu);
fileMenu.addSeparator();
fileMenu.add(exitMenuItem);
editMenu.add(cutMenuItem);
editMenu.add(copyMenuItem);
editMenu.add(pasteMenuItem);
//them menu toi menubar
menuBar.add(fileMenu);
Trang 6menuBar.add(editMenu);
menuBar.add(aboutMenu);
menuBar.add(linkMenu);
//them menubar toi frame
mainFrame.setJMenuBar(menuBar);
mainFrame.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
statusLabel.setText( getActionCommand()
+ " JMenuItem clicked.");
}
}
}