문제

무엇이 올바른 방법은 별도의 간 F1 고 즉 CTRL+F1 각각의 이동-CTRL+F1 내 KeyListener 등록 뒤에 즉a JButton?

public void keyPressed(KeyEvent event) {
    int key = event.getKeyCode();

    logger.debug("KeyBoard pressed char(" + event.getKeyChar() + ") code (" + key + ")");
}

..항상 나에게 112 F1,113 한 F2 그래서.을 이해하여 처리할 수 있습을 돌보는 keyPressed()각각에 대한 keyReleased 한 CTRL / 이동 / ALT /등에서,내 자신만 희망이 있다는 더 나은 방법입니다.

많은 많은 감사!!!!!!!

도움이 되었습니까?

해결책

이 솔루션은 부모의 KeyEvent(InputEvent)

  1. 사용 isAltDown,isControlDown,isShiftDown 방법이나
  2. 사용 getModifiers 방법

다른 팁

이후 KeyEvent 확장 InputEvent, isControlDown, isShiftDownisAltDown.

KeyEvents 는 아마 조금 낮은 수준을 다룰 때 그네요.대신 통해 이동 InputMapActionMap.

키 이벤트가 호출될 때마다 키,아래로 당연합니다.지 여러 키운 이벤트와 같은 것은 없다,그래서 거기에 아무 키코드를 위해 여러 키를 아래로 주도했습니다.

당신이해야 할 것을 사용하여 변수를 추적 ctrl 키를 눌렀습니다.즉,당신은 또한 가을 사용하여 키 이벤트는 경우 추적을 유지하 제어 키가 해제됩니다.

에 pusedo 코드:

// CRTLKeyCode is whatever the code is for the ctrl key
private boolean ctrlPressed = false;

 onKeyDown(KeyEvent event){
     int key = event.getKeyCode();
     if(key == CRTLKeyCode)
        ctrlPressed = true;
     else if(ctrlPressed && key == 112)
        //Perform your action
 }
 onKeyUp(KeyEvent event){
     int key = event.getKeyCode();
     if(key == CRTLKeyCode)
        ctrlPressed = false;
 }
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top