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 对象

如何给swing加上alt+x和ctrl+x快捷键的更多相关文章

  1. 警告: No data sources are configured to run this SQL and provide advanced code assistance. Disable this inspection via problem menu (Alt+Enter). more... (Ctrl+F1) SQL dialect is not configured. Postgr

    python3出现问题: 警告: No data sources are configured to run this SQL and provide advanced code assistance ...

  2. c#变量缺少using引用,如何快速加上using,加Using的快捷键[bubuko.com]

    在vs的“工具”->“选项”中,左侧树形菜单,“环境”下的“键盘”中设置快捷键. 在“显示命令包含”输入框内输入“显示智能标记”,找到“视图.显示智能标记”,可以看到该命令的快捷键已经分配了2个 ...

  3. Sublime使用Ctrl+`作为快捷键弹出Console没有反映的解决办法

    很多Sublime新人都遇到了这个问题,到网上搜,信息很片面,而且不少都是旧版本的.于是有了这篇文章.       默认Sublime使用Ctrl+`作为快捷键弹出Console,但不同的系统抑或安装 ...

  4. 关于Eclipse中Ctrl+Alt+Down和Ctrl+Alt+Up不起作用的解决方法

    1.其它软件热键冲突,把其它软件的热键修改为其它按键,或者删掉热键 2.Intel显卡快捷键问题 1).你虽然禁用Intel快捷键,但是Intel快捷键仍然是Ctrl+alt+down,还是存在冲突, ...

  5. Dedecms 图片加上Alt或Title等属性写法

    代码如下:$this->Fields['typename'] = $this->TypeLink->TypeInfos['typename']; SetSysEnv($this-&g ...

  6. Eclipse中Ctrl+Alt+Down和Ctrl+Alt+Up不起作用

    不起作用是因为跟因特尔的快捷键冲突. 1.在桌面上右键,选择“图形属性......” 2.选择“选项和支持” 3.更改快捷键. 注意:单纯禁用英特尔的快捷键可能不起作用.

  7. nodejs ctrl+B 快捷键设置

    开发 nodejs 的时候,要使用 sublime 软件,其中的启动方式有很多中.可以通过 supersivor 当然也可以 利用nodejs 的自身功能通过 ctrl+B来直接启动. 具体设置方式, ...

  8. Linux终端Ctrl相关快捷键

    快速跳至行首:Ctrl+A 快速跳至行尾:Ctrl+E 向前删除至行首:Ctrl+U 向后删除至行尾:Ctrl+K 向后删一个单词:Ctrl+D 清屏:Crtl+L(clear)

  9. 【xshell】xshell设置快捷键 设置Ctrl+C Ctrl+V快捷键为复制粘贴

    在使用xshell的时候,总是不能顺手的进行复制粘贴的操作. 那能不能设置xhsell的快捷键呢? 点击工具--->选项---> 选择 键盘和鼠标 选项卡--->点击编辑----&g ...

随机推荐

  1. 「BZOJ 2434」「NOI 2011」阿狸的打字机「AC自动机」

    题意 有一个打字机,支持三种操作: 字符串末尾加一个小写字母 字符串末尾减一个字符 输出这个字符串 经过不超过\(n\)次操作后有\(m\)组询问:\((x,y)\),表示第\(x\)次输出第字符串在 ...

  2. Scrapy 增量式爬虫

    Scrapy 增量式爬虫 https://blog.csdn.net/mygodit/article/details/83931009 https://blog.csdn.net/mygodit/ar ...

  3. MongoDB 副本集配置,开启账号认证

    MongoDB 自带功能强大的主从,配置也很简单,从零开始花了30分钟搞定 3台以上机器IP: 192.168.1.24, 192.168.1.25, 192.168.1.26, 192.168.1. ...

  4. kali linux之手动漏洞挖掘三(sql注入)

    服务器端程序将用户输入作为参数作为查询条件,直接拼写sql语句,并将结果返回给客户端浏览器 如判断登录 select * from users where user='uname' and passw ...

  5. 【BZOJ4555】[TJOI&HEOI2016]求和 斯特林数+NTT

    Description 在2016年,佳媛姐姐刚刚学习了第二类斯特林数,非常开心. 现在他想计算这样一个函数的值: S(i, j)表示第二类斯特林数,递推公式为: S(i, j) = j ∗ S(i ...

  6. luoguP1401 城市

    https://www.luogu.org/problemnew/show/P1401 二分答案网络流判断是否可行即可 #include <bits/stdc++.h> using nam ...

  7. mysql设计-基本操作

    mysql 设计 1)服务器管理 2)数据库管理 3)表管理 4)字段管理 5)索引管理 操作 1)sql语句 2)单表操作 3)多表操作 索引 记录 字段 mysam innodb ibdata1 ...

  8. form表单提交回调函数

    form表单没有回调函数,不过可以通过jquery-form.js这个插件来实现回调函数: <form id="addform" class="form-horiz ...

  9. 一、pytest的介绍和安装

    需要针对一个项目系统开发一套UI自动化测试脚本,自己结合着学习,采用了pytest去实现,这里留下记录. 什么是pytest pytest 是一个非常成熟的全功能的Python测试框架 可以胜任uni ...

  10. redis incr自增指定的无限期 key 删除问题

    不得不说,最近在使用redis的incr的功能的时候,着实是踩了不少的坑啊! 前面我写的一篇文章里面,我提到通过incr产生的键在用普通的get的方式去获取的时候,是获取不到的,所以我不得不通过特殊的 ...