Комбинированная клавиша нажата с ActionBinding

1

Я получил этот код, чтобы определить, нажимает ли пользователь кнопку ctrl + A:

    mPanel.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.CTRL_DOWN_MASK), "ALL");
    mPanel.getActionMap().put("ALL", new AbstractAction() {
        @Override
        public void actionPerformed(ActionEvent e) {
          System.out.println("All");
        }
    });

к сожалению, метод никогда не вводится.

В настоящее время я не знаю, чего мне не хватает.

Не могли бы вы помочь мне?

  • 2
    getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW) . В настоящее время с тем, что у вас есть, компонент должен быть сфокусирован.
Теги:
swing
key-bindings
key-events

1 ответ

3
Лучший ответ

Там три InputMap для компоновщика

Когда вы просто вызываете getInputMap без аргумента, это подразумевает

getInputMap(JComponent.WHEN_FOCUSED)

Поэтому вы должны использовать getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню