首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

设立菜单项JMenuItem()的快捷键

2012-11-03 
设置菜单项JMenuItem()的快捷键package PreD.utilsimport java.awt.BorderLayoutimport java.awt.Color

设置菜单项JMenuItem()的快捷键

package PreD.utils;import java.awt.BorderLayout;import java.awt.Color;import java.awt.event.ActionEvent;import javax.swing.AbstractAction;import javax.swing.Action;import javax.swing.ActionMap;import javax.swing.Icon;import javax.swing.InputMap;import javax.swing.JButton;import javax.swing.JComponent;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.KeyStroke;import javax.swing.WindowConstants;/** *  * @Description  * @Author zhangzuoqiang * @Date 2012-1-6 */public class KeyStrokeDemo extends JFrame {/** *  */private static final long serialVersionUID = 1L;private JPanel buttonPnl = null;private JButton blueBtn, yellowBtn, redBtn;public KeyStrokeDemo() {super("快捷键测试程序");this.setSize(300, 200);this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);buttonPnl = new JPanel();blueBtn = new JButton();yellowBtn = new JButton();redBtn = new JButton();Action blueAction = new ColorAction("bule", null, Color.BLUE, blueBtn);Action yellowAction = new ColorAction("yellow", null, Color.YELLOW,yellowBtn);Action redAction = new ColorAction("red", null, Color.RED, redBtn);blueBtn.setAction(blueAction);yellowBtn.setAction(yellowAction);redBtn.setAction(redAction);buttonPnl.add(blueBtn);buttonPnl.add(yellowBtn);buttonPnl.add(redBtn);this.getContentPane().add(buttonPnl, BorderLayout.CENTER);KeyStroke blueKS = KeyStroke.getKeyStroke("ctrl B");// 定义一个ctrl + b的快捷键KeyStroke yellowKS = KeyStroke.getKeyStroke("ctrl Y");// 定义一个ctrl +// y的快捷键// KeyStroke redKS = KeyStroke.getKeyStroke("ctrl R");//定义一个ctrl + r的快捷键// KeyStroke redKS = KeyStroke.getKeyStroke(KeyEvent.VK_R,// InputEvent.CTRL_MASK | InputEvent.SHIFT_MASK);KeyStroke redKS = KeyStroke.getKeyStroke("ctrl shift R");// 以下是另一种实现快捷键定义的方法,与上面注释的代码实现效果是一样的// KeyStroke blueKS = KeyStroke.getKeyStroke(KeyEvent.VK_B,// InputEvent.CTRL_MASK);// 定义一个ctrl + b的快捷键// KeyStroke yellowKS = KeyStroke.getKeyStroke(KeyEvent.VK_Y,// InputEvent.CTRL_MASK);// KeyStroke redKS = KeyStroke.getKeyStroke(KeyEvent.VK_R,// InputEvent.CTRL_MASK);/** 定义一个ctrl + shift + y的快捷键 */// KeyStroke testKS = KeyStroke.getKeyStroke(KeyEvent.VK_Y,// InputEvent.CTRL_MASK | InputEvent.SHIFT_MASK);InputMap imap = buttonPnl.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);imap.put(blueKS, "panel.blue");imap.put(yellowKS, "panel.yellow");imap.put(redKS, "panel.red");ActionMap amap = buttonPnl.getActionMap();amap.put("panel.blue", blueAction);amap.put("panel.yellow", yellowAction);amap.put("panel.red", redAction);}public class ColorAction extends AbstractAction {/** *  */private static final long serialVersionUID = 1L;public ColorAction(String name, Icon icon, Color c, JButton btn) {this.putValue(Action.NAME, name);this.putValue(Action.SMALL_ICON, icon);this.putValue(Action.SHORT_DESCRIPTION,"set panel color to" + name.toLowerCase());this.putValue("color", c);this.putValue("button", btn);}@Overridepublic void actionPerformed(ActionEvent e) {Color c = (Color) this.getValue("color");buttonPnl.setBackground(c);JButton btn = (JButton) this.getValue("button");System.out.println("command:" + btn.getActionCommand());}}public static void main(String[] args) {new KeyStrokeDemo().setVisible(true);}}
?

热点排行