I'm binding keys to events in my Java app, however, I have encountered a really strange bug that I hope you guys can help me solve.
        KeyStroke up = KeyStroke.getKeyStroke("W");
        KeyStroke down = KeyStroke.getKeyStroke("S");
        KeyStroke right = KeyStroke.getKeyStroke("D");
        KeyStroke left = KeyStroke.getKeyStroke("A");
        KeyStroke p2_up = KeyStroke.getKeyStroke("UP");
        KeyStroke p2_down = KeyStroke.getKeyStroke("DOWN");
        KeyStroke p2_left = KeyStroke.getKeyStroke("LEFT");
        KeyStroke p2_right = KeyStroke.getKeyStroke("RIGHT");
        /*KeyStroke key_1 = KeyStroke.getKeyStroke("1");
        KeyStroke key_2 = KeyStroke.getKeyStroke("2");
        KeyStroke key_3 = KeyStroke.getKeyStroke("3");
        KeyStroke key_4 = KeyStroke.getKeyStroke("4");
        KeyStroke key_5 = KeyStroke.getKeyStroke("5");
        KeyStroke key_6 = KeyStroke.getKeyStroke("6");
        KeyStroke key_7 = KeyStroke.getKeyStroke("7");
        KeyStroke key_8 = KeyStroke.getKeyStroke("8");
        KeyStroke key_9 = KeyStroke.getKeyStroke("9");
        KeyStroke key2_1 = KeyStroke.getKeyStroke("F1");
        KeyStroke key2_2 = KeyStroke.getKeyStroke("F2");
        KeyStroke key2_3 = KeyStroke.getKeyStroke("F3");
        KeyStroke key2_4 = KeyStroke.getKeyStroke("F4");
        KeyStroke key2_5 = KeyStroke.getKeyStroke("F5");
        KeyStroke key2_6 = KeyStroke.getKeyStroke("F6");
        KeyStroke key2_7 = KeyStroke.getKeyStroke("F7");
        KeyStroke key2_8 = KeyStroke.getKeyStroke("F8");
        KeyStroke key2_9 = KeyStroke.getKeyStroke("F9");*/
        InputMap inputMap = content
                .getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
        inputMap.put(up, "up");
        inputMap.put(down, "down");
        inputMap.put(right, "right");
        inputMap.put(left, "left");
        inputMap.put(p2_up, "up2");
        inputMap.put(p2_down, "down2");
        inputMap.put(p2_right, "right2");
        inputMap.put(p2_left, "left2");
        Bindings KbBinds = new Bindings(this.currentBigBox);
        content.getActionMap().put("up", KbBinds.moveUp);
        content.getActionMap().put("down", KbBinds.moveDown);
        content.getActionMap().put("right", KbBinds.moveRight);
        content.getActionMap().put("left", KbBinds.moveLeft);
        content.getActionMap().put("up2", KbBinds.p2MoveUp);
        con开发者_如何学运维tent.getActionMap().put("down2", KbBinds.p2MoveDown);
        content.getActionMap().put("right2", KbBinds.p2MoveRight);
        content.getActionMap().put("left2", KbBinds.p2MoveLeft);
Basically all keys except LEFT/RIGHT are caught and binded. If I replace this
        KeyStroke p2_left = KeyStroke.getKeyStroke("LEFT");
with KeyStroke p2_left = KeyStroke.getKeyStroke("UP");
while commenting out p2_up, p2_left works as expected.
Any clue?
The most likely explanation is that something is capturing those key strokes. The most likely candidates are a scroll pane or an input text box of some kind.
 
         
                                         
                                         
                                         
                                        ![Interactive visualization of a graph in python [closed]](https://www.devze.com/res/2023/04-10/09/92d32fe8c0d22fb96bd6f6e8b7d1f457.gif) 
                                         
                                         
                                         
                                         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论