控制释放的键绑定不起作用

Key bindings for control release not working

我有一个 JPanel,我需要检查是否按下了控件,以便用户可以 select 在屏幕上显示多个内容,我遇到了使用按键侦听器的问题,所以经过研究我发现我应该使用键绑定,我终于让它可以用于按下控制,但我无法让它用于释放控制 '''

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 有效,但松开无效,有什么想法吗?

更新,我发现我认为是我的问题的最佳解决方案,鼠标事件存储天气或未按下控件,因此无需对 keysListeners 或绑定键执行任何魔法。这是代码行,如果有人需要的话

'''

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

'''