Java Keybinding Plus Key

sca*_*ity 7 java swing keyboard-shortcuts key-bindings

我正在尝试创建用于放大和缩小我正在创建的图像编辑应用程序的快捷方式,我发现了一些奇怪的东西.要绑定ctrl+ 的组合+,我必须使用=键和控制和移位掩码:

getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_EQUALS, KeyEvent.CTRL_DOWN_MASK + KeyEvent.SHIFT_DOWN_MASK),"ZoomIn");
Run Code Online (Sandbox Code Playgroud)

我尝试直接绑定到VK_PLUS工作的组合都没有:

getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, KeyEvent.CTRL_DOWN_MASK + KeyEvent.SHIFT_DOWN_MASK),"ZoomIn");

getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, KeyEvent.CTRL_DOWN_MASK),"ZoomIn");
Run Code Online (Sandbox Code Playgroud)

它现在可以使用第一行代码,但我想知道为什么底部两个都不起作用,如果键盘没有+键作为移位=键,那么(理论上)这可能是一个问题.

ten*_*ica 16

对于数字键盘加试试KeyEvent.VK_ADD:

getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ADD,
                KeyEvent.CTRL_DOWN_MASK), "plus");
Run Code Online (Sandbox Code Playgroud)

对于主键盘上的加号(美国键盘布局),请使用:

getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_EQUALS, KeyEvent.CTRL_DOWN_MASK | KeyEvent.SHIFT_DOWN_MASK),"plus"); 
Run Code Online (Sandbox Code Playgroud)

对于非美国键盘使用VK_PLUS.有关说明,请参阅错误42620446942481.