乐奇 Rokid 开放社区 添加菜单快捷键(swing)

添加菜单快捷键(swing)

(1) SketchFrame.java<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

package com.service;

 

import javax.swing.ButtonGroup;

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;

import static java.awt.event.InputEvent.*;

 

public class SketchFrame extends JFrame {

    //构造函数

    public SketchFrame(String title){

       setTitle(title);                      //设置窗口标题

       setDefaultCloseOperation(EXIT_ON_CLOSE);

       setJMenuBar(menuBar);                 //添加菜单栏到窗口

      

       JMenu fileMenu= new JMenu("File");    //创建File菜单

       JMenu elementMenu = new JMenu("Elements"); //创建Elements菜单

       fileMenu.setMnemonic('F');            //创建快捷键

       elementMenu.setMnemonic('E');         //创建快捷键

      

       //构造file下拉菜单

       newItem = fileMenu.add("new");        //添加New项目

       openItem = fileMenu.add("Open");      //添加Open项目

       closeItem = fileMenu.add("Close");    //添加Close项目

       fileMenu.addSeparator();          //添加Separator

       saveItem = fileMenu.add("save");      //添加Save项目

       saveAsItem = fileMenu.add("Save as"); //添加Save As项目

       fileMenu.addSeparator();           //添加Separator

        printItem = fileMenu.add("print");    //添加Print项目

      

       //添加File菜单加速键

       newItem.setAccelerator(KeyStroke.getKeyStroke('N',CTRL_DOWN_MASK));

       openItem.setAccelerator(KeyStroke.getKeyStroke('O',CTRL_DOWN_MASK));

       saveItem.setAccelerator(KeyStroke.getKeyStroke('S',CTRL_DOWN_MASK));

       printItem.setAccelerator(KeyStroke.getKeyStroke('P',CTRL_DOWN_MASK));

      

       //构造Element下拉菜单

       elementMenu.add(lineItem = new JRadioButtonMenuItem("Line",true));

       elementMenu.add(rectangleItem = new JRadioButtonMenuItem("Rectangle",false));

       elementMenu.add(circleItem = new JRadioButtonMenuItem("Circle",false));

       elementMenu.add(curveItem = new JRadioButtonMenuItem("Curve",false));

       ButtonGroup types=new ButtonGroup();

       types.add(lineItem);

       types.add(rectangleItem);

       types.add(circleItem);

       types.add(curveItem);

      

       //添加element类型加速键

       lineItem.setAccelerator(KeyStroke.getKeyStroke('L',CTRL_DOWN_MASK));

        rectangleItem.setAccelerator(KeyStroke.getKeyStroke('E',CTRL_DOWN_MASK));

        circleItem.setAccelerator(KeyStroke.getKeyStroke('I',CTRL_DOWN_MASK));

       curveItem.setAccelerator(KeyStroke.getKeyStroke('V',CTRL_DOWN_MASK));

      

       elementMenu.addSeparator();

      

       //创建color子菜单

       JMenu colorMenu = new JMenu("Color");    //Color子菜单

       elementMenu.add(colorMenu);              //添加子菜单

       colorMenu.add(redItem = new JCheckBoxMenuItem("Red",false));

       colorMenu.add(yellowItem = new JCheckBoxMenuItem("Yellow",false));

       colorMenu.add(greenItem = new JCheckBoxMenuItem("Green",false));

       colorMenu.add(blueItem = new JCheckBoxMenuItem("Blue",true));

      

       //添加element color加速键

       redItem.setAccelerator(KeyStroke.getKeyStroke('R',CTRL_DOWN_MASK));

        yellowItem.setAccelerator(KeyStroke.getKeyStroke('Y',CTRL_DOWN_MASK));

       greenItem.setAccelerator(KeyStroke.getKeyStroke('G',CTRL_DOWN_MASK));

       blueItem.setAccelerator(KeyStroke.getKeyStroke('B',CTRL_DOWN_MASK));

      

       menuBar.add(fileMenu);         //添加file菜单

       menuBar.add(elementMenu);      //添加element菜单

    }

   

    private JMenuBar menuBar = new JMenuBar();    //窗口菜单栏

   

    //File菜单项目

    private JMenuItem newItem,openItem,closeItem,saveItem,saveAsItem,printItem;

   

    //Element菜单项目

    private JRadioButtonMenuItem lineItem,rectangleItem,circleItem,curveItem,textItem;

    private JCheckBoxMenuItem redItem,yellowItem,greenItem,blueItem;

}

 

(2) Sketcher.java
package com.test;

 

import java.awt.Dimension;
import java.awt.Toolkit;

 

import javax.swing.SwingUtilities;

 

import com.service.SketchFrame;

 

public class Sketcher {

 

       public static void main(String[] args) {
              SwingUtilities.invokeLater(
                            new Runnable(){
                                   public void run(){
                                          creatGUI();
                                   }
                            }
              );

 

       }
      
       static void creatGUI(){
              window = new SketchFrame("Sketcher");
              Toolkit theKit = window.getToolkit();
              Dimension wndSize = theKit.getScreenSize();
             
              window.setBounds(wndSize.width/4, wndSize.height/4,   //位置
                                     wndSize.width/2, wndSize.height/2);  //大小
             
              window.setVisible(true);
                    
       }

 

       private static SketchFrame window;
}

 

转载于:https://blog.51cto.com/grape/107321

更多推荐

  • 浏览量 509
  • 收藏 0
  • 0

所有评论(0)

查看更多评论 
已为社区贡献3条内容