Java Swing如何使用getKeyStroke()创建三键KeyStroke设置菜单项快捷键
要实现Shift + Ctrl + N三键组合的菜单项加速器,直接通过位或运算符组合多个修饰符掩码即可,KeyStroke本身原生支持多修饰符组合,不需要额外扩展。
你可以直接替换原有代码为以下实现:
// 兼容旧版JDK的写法 menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, ActionEvent.CTRL_MASK | ActionEvent.SHIFT_MASK));
如果使用JDK 1.4及以上版本,更推荐使用InputEvent的_DOWN_MASK系列常量,对多平台按键适配更友好:
// 推荐的现代写法 import java.awt.event.InputEvent; menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK));
该逻辑支持任意数量的合法修饰符拼接,比如需要新增Alt键作为第四修饰符,只要在参数中追加| InputEvent.ALT_DOWN_MASK即可。
内容的提问来源于stack exchange,提问作者Manbir Judge
相关产品推荐
相关产品推荐

