java 制作快捷键_Java 图形界面 快捷键制作

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

InputEvent.CTRL CTRL_MASK);

Ctrl a:KeyStroke.

getKeyStroke('a');

Alt+Shift

Shift+C:getKeyStroke(KeyEvent.VK_C, InputEvent InputEvent.ALT_MASK

| Shift InputEvent.SHIFT SHIFT_MASK, true);

当然, 如果你不想引入一些如 KeyEvent 或 InputEvent

类的话, 那么你就可以用KeyStroke.getKeyStroke

(String s)方法来简化他:

F5:KeyStroke.getKeyStroke("F5");

Ctrl+Q:KeyStroke.getKeyStroke("control

Q ");

Ctrl a:KeyStroke.getKeyStroke( "typed

a" );

Alt+Shift Shift+C:getKeyStroke("alt

shift released X ");

如为子菜单"打开"(名为:meuOpen)加入快捷键 Ctrl

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. 聪明的你们突类旁通吧,一定可以成功的.

不过要注意以下几点:

在使用 KeyStroke 的 getKeyStroke(String s)方法时应该注意用法如 Ctrl 用 control

表示,Alt 用 alt 来表示,如果加上字母则要用大写,但只有一个键 如 a 时,应该用小写:"type a".

KeyStroke 的 getKeyStroke(String s)方法是方便,但如果使用不合法的语

法是达不到目的的,这时你可以试试 KeyStroke 的其它静态方法.

AbstractButton 的子类的快捷键用 setMnemonic 方法来设置只能有 Alt+指定 的键.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值