Сначала я подумал, что это как-то связано с тем, что CTRL + M - это то же самое, что возврат каретки / перевод строки, но это не так. Попробуйте:
if(e.isControlDown() && e.getKeyCode() == KeyEvent.VK_M) {
System.out.println("pressed");
menu.setVisible(true);
}
Я не смог заставить его работать с использованием chars с e.getKeyChar (), но getKeyCode () работает для меня. Отлично, это работает. Но я тот тип, который должен знать почему. Итак, я нашел это :
события KEY_PRESSED и KEY_RELEASED
не предназначены для отчетности
ввод символов. Поэтому значения
возвращенные этим методом гарантированы
быть значимым только для KEY_TYPED
События