Java JMenu_2

来源:互联网 发布:千锋教育云计算 编辑:程序博客网 时间:2024/06/05 03:54

package com.han;import java.awt.Dimension;import java.awt.Rectangle;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.InputEvent;import java.awt.event.KeyEvent;import java.awt.image.BufferedImage;import java.io.IOException;import java.net.URL;import javax.imageio.ImageIO;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;public class JMenu_2 extends JFrame {/** *  */private static final long serialVersionUID = 1395124747782445698L;static Dimension dimension;public JMenu_2() {super();// TODO Auto-generated constructor stubJMenuBar menuBar = new JMenuBar();setJMenuBar(menuBar);JMenu fileMenu = new JMenu("文件(F)");fileMenu.setMnemonic('F');menuBar.add(fileMenu);JMenuItem newItem = new JMenuItem("新建(N)");newItem.setMnemonic('N');newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));fileMenu.add(newItem);newItem.addActionListener(new newItemListener());JMenu openMenu = new JMenu("打开(O)");JMenuItem openMenuItem = new JMenuItem("未打开过的(N)");JMenuItem openMenuItem2 = new JMenuItem("刚打开过的(C)");fileMenu.add(openMenu);openMenu.add(openMenuItem);openMenu.add(openMenuItem2);openMenu.setMnemonic('O');openMenuItem.setMnemonic('N');openMenuItem2.setMnemonic('C');openMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK | InputEvent.ALT_MASK));openMenuItem2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK | InputEvent.ALT_MASK));openMenuItem.addActionListener(new openMenuItemListener());openMenuItem2.addActionListener(new openMenuItem2Listener());fileMenu.addSeparator();openMenuItem2.setEnabled(false);JMenuItem saveMenuItem = new JMenuItem("保存(S)");saveMenuItem.setMnemonic('S');saveMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));fileMenu.add(saveMenuItem);saveMenuItem.addActionListener(new saveMenuItemListener());fileMenu.addSeparator();JMenuItem exitMenuItem = new JMenuItem("退出(E)");exitMenuItem.setMnemonic('E');exitMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_MASK));fileMenu.add(exitMenuItem);exitMenuItem.addActionListener(new exitMenuItemListener());JMenu editMenu = new JMenu("编辑(E)");editMenu.setMnemonic('E');menuBar.add(editMenu);JMenuItem cutMenuItem = new JMenuItem("剪切(T)");cutMenuItem.setMnemonic('T');cutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,InputEvent.CTRL_MASK));editMenu.add(cutMenuItem);cutMenuItem.addActionListener(new cutMenuItemListener());JMenuItem copyMenuItem = new JMenuItem("复制(C)");copyMenuItem.setMnemonic('C');copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));editMenu.add(copyMenuItem);copyMenuItem.addActionListener(new copyMenuItemListener());URL resource = this.getClass().getResource("/images/Luxun.jpg");BufferedImage imageScaled = null;BufferedImage in;try {in = ImageIO.read(resource);imageScaled = ImageScale.scale(in, 0.05, 0.05, 1);} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}ImageIcon imageIcon = new ImageIcon(imageScaled);copyMenuItem.setIcon(imageIcon);JMenuItem pasteMenuItem = new JMenuItem("粘贴(P)");pasteMenuItem.setMnemonic('P');pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));editMenu.add(pasteMenuItem);pasteMenuItem.addActionListener(new pasteMenuItemListener());editMenu.addSeparator();JMenu fontMenu = new JMenu("字体(F)");JCheckBoxMenuItem fontMenuItem = new JCheckBoxMenuItem("加粗(B)");JCheckBoxMenuItem fontMenuItem2 = new JCheckBoxMenuItem("斜体(I)");/*ButtonGroup buttonGroup2 = new ButtonGroup();buttonGroup2.add(fontMenuItem);buttonGroup2.add(fontMenuItem2);*/editMenu.add(fontMenu);fontMenu.add(fontMenuItem);fontMenu.add(fontMenuItem2);fontMenu.setMnemonic('F');fontMenuItem.setMnemonic('B');fontMenuItem2.setMnemonic('I');fontMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B,InputEvent.CTRL_MASK | InputEvent.ALT_MASK));fontMenuItem2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I,InputEvent.CTRL_MASK | InputEvent.ALT_MASK));fontMenuItem.addActionListener(new fontMenuItemListener());fontMenuItem2.addActionListener(new fontMenuItem2Listener());editMenu.addSeparator();JMenu attributeMenu = new JMenu("属性(A)");JRadioButtonMenuItem attributeMenuItem = new JRadioButtonMenuItem("只读(R)");JRadioButtonMenuItem attributeMenuItem2 = new JRadioButtonMenuItem("编辑(E)");ButtonGroup buttonGroup = new ButtonGroup();buttonGroup.add(attributeMenuItem);buttonGroup.add(attributeMenuItem2);editMenu.add(attributeMenu);attributeMenu.add(attributeMenuItem);attributeMenu.add(attributeMenuItem2);attributeMenu.setMnemonic('A');attributeMenuItem.setMnemonic('R');attributeMenuItem2.setMnemonic('E');attributeMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,InputEvent.CTRL_MASK | InputEvent.ALT_MASK));attributeMenuItem2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_MASK | InputEvent.ALT_MASK));attributeMenuItem.addActionListener(new attributeMenuItemListener());attributeMenuItem2.addActionListener(new attributeMenuItem2Listener());JMenu helpMenu = new JMenu("帮助(H)");helpMenu.setMnemonic('H');menuBar.add(helpMenu);dimension = menuBar.getPreferredSize();System.out.println(dimension.width + "\t" + dimension.height);}// action listener processionprivate class newItemListener implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stub}}private class openMenuItemListener implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stub}}private class openMenuItem2Listener implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stub}}private class saveMenuItemListener implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stub}}private class exitMenuItemListener implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stub}}private class cutMenuItemListener implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stub}}private class copyMenuItemListener implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stub}}private class pasteMenuItemListener implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stub}}private class fontMenuItemListener implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stub}}private class fontMenuItem2Listener implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stub}}private class attributeMenuItemListener implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stub}}private class attributeMenuItem2Listener implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stub}}public static void main(String[] args) {JMenu_2 frame = new JMenu_2();frame.setTitle("订制个性化菜单");frame.setVisible(true);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Rectangle rectangle = new Rectangle(100, 100, dimension.width + 300,dimension.width + 100);frame.setBounds(rectangle);}}