收藏 分销(赏)

java快捷键.doc

上传人:s4****5z 文档编号:8728767 上传时间:2025-02-28 格式:DOC 页数:4 大小:36.50KB 下载积分:10 金币
下载 相关 举报
java快捷键.doc_第1页
第1页 / 共4页
java快捷键.doc_第2页
第2页 / 共4页


点击查看更多>>
资源描述
Java快捷键制作 用过VB的知道按下F5是运行窗体,用过Photoshop的知道按下Tab是隐藏所有面板 ,你的Java程序也想有这个功能么?那么希望这篇文章对您有所帮助。 子菜单类JMenuItem有一个方法不知道你注意过没有:setAccelerator。 打开帮助文件对这个方法的描述是: 设置组合键,它能直接调用菜单项的操作 侦听器而不必显示菜单的层次结构。所以用这个方法就能制作我们所要的快捷键 了。 帮助文件告诉我们,传给setAccelerator方法所要的是一个KeyStroke,下面来 说说这个类: KeyStoke在Javax.swing包下,他的作用将我们要的键"捆"起来,再传给上面所 说的setAccelerator之类的方法来使用,KeyStoke类提供了几个"捆"键的静态重 载方法,下面说几个例子,你们自己去试试吧: F5: KeyStroke.getKeyStroke(KeyEvent.F5, 0); Ctrl+Q: KeyStroke.getKeyStroke(KeyEvent.VK_Q, InputEvent.CTRL_MASK); a:KeyStroke. getKeyStroke('a'); Alt+Shift+C:getKeyStroke(KeyEvent.VK_C, InputEvent.ALT_MASK | InputEvent.SHIFT_MASK, true); 当然,如果你不想引入一些如KeyEvent或InputEvent类的话,那么你就可以用 KeyStroke.getKeyStroke(String s)方法来简化他: F5:KeyStroke.getKeyStroke("F5"); Ctrl+Q:KeyStroke.getKeyStroke("control Q "); a:KeyStroke.getKeyStroke( "typed a" ); Alt+Shift+C:getKeyStroke("alt shift released X "); 如为子菜单"打开"(名为:meuOpen)加入快捷键Ctrl+O: meuOpen.setAccelerator(KeyStroke.getKeyStroke("control O")); 上面说的是子菜单的快捷键设置,现在说下其它控件的快捷键设置: 把开帮助文件,进入 javax.swing.AbstractButton ,你可以找到setMnemonic (int mnemonic),这就是AbstractButton子类设置快捷键的方法了,如一个按钮 btn,设置快捷键为:btn.setMnemonic (KeyEvent.A),则它的快捷方式为Alt+A ,它有一个修饰方法 setDisplayedMnemonicIndex (int index),作用是设置标 题的第几个字符加个下划线来标识快捷键,如btn.setText ("Open");btn.setDisplayedMnemonicIndex(0),则btn的标题变为Open。 聪明的你们突类旁通吧,一定可以成功的。不过要注意以下几点: 1、在使用KeyStroke的getKeyStroke(String s)方法时应该注意用法如Ctrl用 control表示,Alt用alt来表示,如果加上字母则要用大写,但只有一个键如a时 ,应该用小写:"type a"。 2、KeyStroke的getKeyStroke(String s)方法是方便,但如果使用不合法的语法 是达不到目的的,这时你可以试试KeyStroke的其它静态方法。 3、AbstractButton的子类的快捷键用setMnemonic方法来设置只能有Alt+指定的 键。 button不能设置alt以外的快捷键,menuitem可以: menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, InputEvent.CTRL_MASK)); JMenu jm = new JMenu("文件(F)"); jm.setMnemonic('f'); ActionListener action=new ActionListener(){ public void actionPerformed(ActionEvent e){ System.out.println("^G has pressed."); } }; KeyStroke ks=KeyStroke.getKeyStroke (KeyEvent.VK_G,InputEvent.CTRL_MASK,false);//Ctrl+G InputMap map = jButton4.getInputMap (JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); map.put(ks,"key");//这个"key"可以是任意字符串,但是不能重复,就好像 是Hashtable中的ke -value一样, 而下面actionmap中put进去的action就是它的value; jButton4.getActionMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT) .put("key",action); /** * 为RootPaneContainer组件添加键盘事件 * @param rpc RootPaneContainer组件 * @param action 需要执行的动作 * @param keyName 键的名称 * @param keyCode 键的数字代码 * @param modifiers 任意修饰符的按位或组合 */ public static void registerKeyEvent(RootPaneContainer rpc, Action action, String keyName, int keyCode, int modifiers) { JRootPane rp = rpc.getRootPane(); InputMap inputMap = rp.getInputMap (JComponent.WHEN_IN_FOCUSED_WINDOW); inputMap.put(KeyStroke.getKeyStroke(keyCode, modifiers), keyName); rp.getActionMap().put(keyName, action); } Action action = new AbstractAction() { public void actionPerformed(ActionEvent e) { System.out.println("Do something..."); } }; registerKeyEvent(jframe, action, "随便什么都行,只要不重复", KeyEvent.VK_S, KeyEvent.CTRL_MASK); 本文来自CSDN博客,转载请标明出处:
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 社会民生

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服