我正在尝试在文本编辑器组件上实现JPopupMenu。它应该在CTRL + m上激活。我可以在
中做到这一点@Override
public void keyPressed(KeyEvent arg0) {
}
如果是,怎么样?因为如果我尝试
if(arg0.isControlDown()&&arg0.getKeyChar()=='m')
它不起作用。
答案 0 :(得分:1)
起初我认为这与CTRL + M与回车符/换行符相同,但事实并非如此。尝试:
if(e.isControlDown() && e.getKeyCode() == KeyEvent.VK_M) {
System.out.println("pressed");
menu.setVisible(true);
}
我也无法使用带有e.getKeyChar()的字符来工作,但是getKeyCode()对我有效。很好,它的工作原理。但我是那种必须知道原因的人。所以我找到了this:
KEY_PRESSED和KEY_RELEASED事件 不用于报告 字符输入。因此,价值观 这种方法返回的是有保证的 仅对KEY_TYPED有意义 事件