화살표 키가 눌 렸는지 여부를 수신하는 패널에 키 바인딩을 구현하고 있습니다.키 바인딩이 작동하지 않습니다. Java Swing
누를 경우 작업을 수행합니다. 내 코드 :
private void createKeyBindings(){
actionMap = this.getActionMap();
inputMap = this.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
this.getInputMap().put(KeyStroke.getKeyStroke("a"),
"pressedUpArrow");
this.getInputMap().put(KeyStroke.getKeyStroke("released UP"),
"releasedUpArrow");
this.getActionMap().put("pressedUpArrow",
new PressedUpArrowAction());
this.getActionMap().put("releasedUpArrow",
new ReleasedUpArrowAction());
}
행동이 작동 (I가 버튼에 매핑하고 버튼을 누르면,이 조치는 어떻게해야 무엇 않습니다).
이러한 키 바인딩은 내 패널 (탭 패널의 탭)에 호출됩니다. 나는 키를 누를 때마다 UP 키를 누른 채로 시도했다 (문제가 아닌지 확인하기 위해). 해당 탭에 포커스가있을 때이 키를 입력합니다.
어떤 조언이 필요합니까?
@stephen의 답변 외에도 [SSCCE] (http://sscce.org/) – mKorbel
을 게시하는 것이 더 도움이되도록 GUI에 출력 할 위치를 지정하십시오. 위의 스 니펫에서 키 입력을 등록하는 위치 잘못된 inputMap : replace this.getInputMap(). put (..) with inputMap.put (...) – kleopatra
고마워요, 해결되었지만 해결되지 않았습니다. GUI에 출력되는 내용이 없습니다. PressedUpArrowAction은 일시적으로 오류 메시지 만 출력합니다. Action은 작동하는데, 왜냐하면 내가 setAction을 사용하여 키에 바인딩 할 때 눌렀을 때 작동하기 때문입니다. – Sven