package com.mhc.learn;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.KeyStroke;
/**
*
* @author mhc
*This is a test of JMenu . And it's reffered 点击打开链接
*/
public class JMenuExample extends JMenuBar {
String [] fileItems = new String[] {"New","Open","Save","Exit"};
String[] editItems = new String[]{"Undo","Cut","Copy","Paste"};
char[] fileShortcuts = {'N','O','S','X'};
char[] editShortcuts={'U','X','C','V'};
public JMenuExample(){
JMenu fileMenu = new JMenu("File");
JMenu editMenu = new JMenu("Edit");
JMenu otherMenu = new JMenu("Other");
JMenu subMenu = new JMenu("SubMenu");//子菜单
JMenu subMenu2 = new JMenu("SubMenu2");//2级子菜单
//组装
ActionListener printListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Menu item["+e.getActionCommand()+"] was perssed.");
}
};
for (int i = 0; i <fileItems.length; i++) {
JMenuItem item = new JMenuItem(fileItems[i],fileShortcuts[i]);
item.addActionListener(printListener);//都添加一个输出的事件
fileMenu.add(item);//将菜单项添加到菜单中
}
//组装文件菜单(File menus)和快捷键(Keyboard accelerators)
for (int i = 0; i < editItems.length; i++) {
JMenuItem item = new JMenuItem(editItems[i]);
item.setAccelerator(KeyStroke.getKeyStroke(editShortcuts[i],Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),false));
item.addActionListener(printListener);
editMenu.add(item);
}
//插入一个分隔符在编辑菜单位置在“Undo”之后
editMenu.insertSeparator(1);
//组装
JMenuItem item;
subMenu2.add(item=new JMenuItem("Extra 2"));
item.addActionListener(printListener);
subMenu.add(item=new JMenuItem("Extra 1"));
item.addActionListener(printListener);
subMenu.add(subMenu2);
//Assemble the Other menu itself
otherMenu.add(subMenu);
otherMenu.add(item=new JCheckBoxMenuItem("Check Me"));
item.addActionListener(printListener);
otherMenu.addSeparator();
ButtonGroup buttonGroup = new ButtonGroup();
otherMenu.add(item=new JRadioButtonMenuItem("Radio 1"));
item.addActionListener(printListener);
buttonGroup.add(item);
otherMenu.add(item=new JRadioButtonMenuItem("Radio 2"));
item.addActionListener(printListener);
buttonGroup.add(item);
otherMenu.addSeparator();
otherMenu.add(item=new JMenuItem("Potted Plant",new ImageIcon("image.git")));
item.addActionListener(printListener);
//最后添加所有的菜单到菜单条上
add(fileMenu);
add(editMenu);
add(otherMenu);
}
public static void main(String [] args){
JFrame frame = new JFrame("Simple Menu Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setJMenuBar(new JMenuExample());
//frame.pack();//pack 作用就是 自定义 窗口大小 JFrame 里内容多就大 少 就小
frame.setSize(640, 480);
frame.setVisible(true);
}
}
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.KeyStroke;
/**
*
* @author mhc
*This is a test of JMenu . And it's reffered 点击打开链接
*/
public class JMenuExample extends JMenuBar {
String [] fileItems = new String[] {"New","Open","Save","Exit"};
String[] editItems = new String[]{"Undo","Cut","Copy","Paste"};
char[] fileShortcuts = {'N','O','S','X'};
char[] editShortcuts={'U','X','C','V'};
public JMenuExample(){
JMenu fileMenu = new JMenu("File");
JMenu editMenu = new JMenu("Edit");
JMenu otherMenu = new JMenu("Other");
JMenu subMenu = new JMenu("SubMenu");//子菜单
JMenu subMenu2 = new JMenu("SubMenu2");//2级子菜单
//组装
ActionListener printListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Menu item["+e.getActionCommand()+"] was perssed.");
}
};
for (int i = 0; i <fileItems.length; i++) {
JMenuItem item = new JMenuItem(fileItems[i],fileShortcuts[i]);
item.addActionListener(printListener);//都添加一个输出的事件
fileMenu.add(item);//将菜单项添加到菜单中
}
//组装文件菜单(File menus)和快捷键(Keyboard accelerators)
for (int i = 0; i < editItems.length; i++) {
JMenuItem item = new JMenuItem(editItems[i]);
item.setAccelerator(KeyStroke.getKeyStroke(editShortcuts[i],Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),false));
item.addActionListener(printListener);
editMenu.add(item);
}
//插入一个分隔符在编辑菜单位置在“Undo”之后
editMenu.insertSeparator(1);
//组装
JMenuItem item;
subMenu2.add(item=new JMenuItem("Extra 2"));
item.addActionListener(printListener);
subMenu.add(item=new JMenuItem("Extra 1"));
item.addActionListener(printListener);
subMenu.add(subMenu2);
//Assemble the Other menu itself
otherMenu.add(subMenu);
otherMenu.add(item=new JCheckBoxMenuItem("Check Me"));
item.addActionListener(printListener);
otherMenu.addSeparator();
ButtonGroup buttonGroup = new ButtonGroup();
otherMenu.add(item=new JRadioButtonMenuItem("Radio 1"));
item.addActionListener(printListener);
buttonGroup.add(item);
otherMenu.add(item=new JRadioButtonMenuItem("Radio 2"));
item.addActionListener(printListener);
buttonGroup.add(item);
otherMenu.addSeparator();
otherMenu.add(item=new JMenuItem("Potted Plant",new ImageIcon("image.git")));
item.addActionListener(printListener);
//最后添加所有的菜单到菜单条上
add(fileMenu);
add(editMenu);
add(otherMenu);
}
public static void main(String [] args){
JFrame frame = new JFrame("Simple Menu Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setJMenuBar(new JMenuExample());
//frame.pack();//pack 作用就是 自定义 窗口大小 JFrame 里内容多就大 少 就小
frame.setSize(640, 480);
frame.setVisible(true);
}
}