添加菜单快捷键(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
更多推荐



所有评论(0)