【发布时间】:2016-04-05 23:57:09
【问题描述】:
对于我的摇摆应用程序,JMenuItem 的加速器设置如下:
JMenuItem numFieldsMI = new JMenuItem("Set Number of Fields");
numFieldsMI.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_3,
ActionEvent.CTRL_MASK+ActionEvent.SHIFT_MASK));
当 GUI 初始化时,这会使菜单项旁边的文本显示为“Ctrl+Shift+3”,但当然意图是文本为“Ctrl+#”。我该怎么做?
【问题讨论】:
-
我认为
ActionEvent.CTRL_MASK+ActionEvent.SHIFT_MASK应该是ActionEvent.CTRL_MASK | ActionEvent.SHIFT_MASK... -
我玩过
KeyStroke.getKeyStroke(KeyEvent.VK_NUMBER_SIGN, ActionEvent.CTRL_MASK)和KeyStroke.getKeyStroke(KeyEvent.VK_NUMBER_SIGN, ActionEvent.CTRL_MASK | ActionEvent.SHIFT_MASK),两者都不会触发菜单的ActionListener,而KeyEvent.VK_3, ActionEvent.CTRL_MASK | ActionEvent.SHIFT_MASK)确实有效,尽管它确实显示Ctrl+Shift+3...所以,你可以让它显示你想要的或工作的,你的选择
标签: java swing jmenu jmenuitem