Привязки клавиш для контрольной разблокировки не работают - PullRequest
0 голосов
/ 07 января 2020

У меня есть JPanel, который мне нужно проверить, чтобы элемент управления был нажат, чтобы пользователь мог выбрать несколько вещей на экране, у меня были проблемы с использованием клавишного прослушивателя, поэтому после исследования я обнаружил, что должен был использовать клавишу привязки, и я, наконец, заставил его работать для нажатия элемента управления, но я не могу заставить его работать для освобождения элемента управления '' '

getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_CONTROL, 
InputEvent.CTRL_DOWN_MASK), "press");
    getActionMap().put("press", new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {
            controlPressed = true;
        }

    });
getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.CTRL_DOWN_MASK 
,InputEvent.CTRL_DOWN_MASK,true), "release");
    getActionMap().put("release", new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent e) {
            System.out.println("release");
            controlPressed = false;

        }

    });

' ''

, поэтому нажатие Ctrl работает, но освобождает нет, есть идеи?

1 Ответ

0 голосов
/ 10 января 2020

Обновление, я нашел то, что я считаю лучшим решением для моей проблемы, событие мыши хранит погоду или не нажимается элемент управления, поэтому не было необходимости делать какие-либо магические действия c с keysListeners или связующими клавишами. вот строка кода, если кому-то это нужно

'' '

public void mousePressed(MouseEvent e){
 e.isControlDown();
}

' ''

...