저는 현재 Java로 계산기를 작성 중이고 키 리스너를 구현하기 시작했습니다. 잘 작동하지만 캐럿 기호 (^)를 입력하면 즉시 등록되지 않습니다. 다른 키를 먼저 눌러야 나타납니다.캐럿 (^)은 즉시 등록하지 않습니다. Java 키 리스너
일반 텍스트 문서에 캐럿 을 입력하려고 할 때와 동일한 동작을 사용한다고 생각합니다. 그러나이 문제를 해결할 방법이 있습니까?
@Override
public void handle(KeyEvent ke) {
String key = ke.getCharacter();
if (key.matches("[0-9*/+-=.()^%]")) {
controller.getButton(key).fire();
}
}
편집 : 해결 방법을 찾을 도움이된다면
, 여기에 KeyEvent를 처리하려면 코드입니다. Eli Sadoff가 언급 한 문제는 내 키보드가 내 키보드의 중요한 열쇠라는 것입니다. 나의 캐럿 바인딩 때문에 것은 "시프트 + ¨", 나는 이런 식으로 해결 할 수 있었다 :
@Override
public void handle(KeyEvent ke) {
String key = ke.getCharacter();
if (ke.isShiftDown() && ke.getCode() == KeyCode.DEAD_DIAERESIS) {
controller.getButton("^").fire();
}
else if (key.matches("[0-9*/+-=.()%]")) {
controller.getButton(key).fire();
}
}
'+','(',')','%'같은 문제가 우연히 발생합니까? –
아니요, 둘 다 아닙니다. – Javatar4ever
컴퓨터에서 캐럿 키가 죽은 키입니까? (의미는'^'를 입력 한 다음'e '는'ê'를 생성합니다) –