Java:처리 결합된 키보드 입력
-
03-07-2019 - |
문제
무엇이 올바른 방법은 별도의 간 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)
- 사용 isAltDown,isControlDown,isShiftDown 방법이나
- 사용 getModifiers 방법
다른 팁
이후 KeyEvent 확장 InputEvent, isControlDown, isShiftDown 고 isAltDown.
KeyEvent
s 는 아마 조금 낮은 수준을 다룰 때 그네요.대신 통해 이동 InputMap
고 ActionMap
.
키 이벤트가 호출될 때마다 키,아래로 당연합니다.지 여러 키운 이벤트와 같은 것은 없다,그래서 거기에 아무 키코드를 위해 여러 키를 아래로 주도했습니다.
당신이해야 할 것을 사용하여 변수를 추적 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; }
제휴하지 않습니다 StackOverflow