zoukankan      html  css  js  c++  java
  • 如何给swing加上alt+x和ctrl+x快捷键

    1.给菜单栏上的菜单alt+x快捷键非常简单:

    private JMenu helpInfo = new JMenu("帮助");

    helpInfo.setMnemonic(KeyEvent.VK_?);

    public void setMnemonic(int mnemonic)

    设置当前模型上的键盘助记符。助记符是某种键,它与外观的无鼠标修饰符(通常是 Alt)组合时(如果焦点被包含在此按钮祖先窗口中的某个地方)将激活此按钮。 
    一个助记符必须对应键盘上的一个键,并且应该使用 java.awt.event.KeyEvent 中定义的 VK_XXX 键代码之一指定。助记符是不区分大小写的,所以具有相应键代码的键事件将造成按钮被激活,不管是否按下 Shift 修饰符。如果在按钮的标签字符串中发现由助记符定义的字符,则第一个出现的助记符将是带下划线的,以向用户指示该助记符。

    2.给菜单的下拉菜单加上ctrl+x就有些复杂:

    final JMenuItem bargeInfo = new JMenuItem("驳船信息管理(N)         ");
      
    //设置快捷键
    KeyStroke keyStroke1 = KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_MASK);

    bargeInfo.setAccelerator(keyStroke1);   

       bargeInfo.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
                     //添加事件监听代码
        }
       });

    public void setAccelerator(KeyStroke keyStroke)

    设置组合键,它能直接调用菜单项的操作侦听器而不必显示菜单的层次结构。UI 负责安装正确的操作。注意,当键入键盘加速器时,不管目前是否显示菜单,它都会运行。 
    参数:
    keyStroke - 将作为加速器的 KeyStroke

    public class KeyStroke extends AWTKeyStroke
    表示键盘或等效输入设置上的键操作的KeyStroke。KeyStroke 仅能对应于按下或释放某个特定的键,正如 KEY_PRESSED 和 KEY_RELEASED KeyEvents 执行的操

    作;或者,它们可能对应于键入特定的 Java 字符,正如 KEY_TYPED KeyEvents 执行的操作。在所有情况下,KeyStroke 都可以指定修饰符(alt、shift、

    control、meta 或其组合),在针对精确匹配的操作中,这些修饰符必须存在.KeyStroke 是不可变的,而且是惟一的。客户端代码无法创建 KeyStroke;必须使

    用 getKeyStroke 的变体。

    public static KeyStroke getKeyStroke(int keyCode, int modifiers)
    在给出一个数字键代码和一组修饰符的情况下,返回 KeyStroke 的一个共享实例。返回的 KeyStroke 将对应于一个按键操作。

    可以使用在 java.awt.event.KeyEvent 中定义的“虚拟键”常量来指定键代码。例如:
    java.awt.event.KeyEvent.VK_ENTER 
    java.awt.event.KeyEvent.VK_TAB 
    java.awt.event.KeyEvent.VK_SPACE 
    修饰符由以下任意组合组成:
    java.awt.event.InputEvent.SHIFT_MASK (1) 
    java.awt.event.InputEvent.CTRL_MASK (2) 
    java.awt.event.InputEvent.META_MASK (4) 
    java.awt.event.InputEvent.ALT_MASK (8) 
    因为这些数字都是 2 的不同次幂,所以它们的任意组合是一个整数,该整数的每个位都表示一个不同的修饰符键。可以使用 0 指定无修饰符。

    参数:
    keyCode - 一个 int,指定键盘上某个键的数字代码
    modifiers - 任意修饰符的按位或组合

    返回:
    该键的 KeyStroke 对象

  • 相关阅读:
    Android的数据存储
    Servlet第一天
    JavaScript高级程序设计读书笔记(3)
    Interesting Papers on Face Recognition
    Researchers Study Ear Biometrics
    IIS 发生意外错误 0x8ffe2740
    Father of fractal geometry, Benoit Mandelbrot has passed away
    Computer vision scientist David Mumford wins National Medal of Science
    Pattern Recognition Review Papers
    盒模型bug的解决方法
  • 原文地址:https://www.cnblogs.com/hehaiyang/p/3733551.html
Copyright © 2011-2022 走看看