GWT로 Java Swing Mnemonics으로 만들고 싶습니다. 그러나 나는 그것을 알아내는 방법을 모른다. 나는 그것을 위해 봤지만 나는 그것에 대한 샘플 코드를 좋아하지 않았다. 내 단추에 일부 키보드 바로 가기 키를 바인딩하고 싶습니다. 그것을 어떻게 성취 할 수 있습니까? 모든 제안은 정말 감사하겠습니다!니모닉 in GWT
0
A
답변
1
일반적으로 NativePreviewHandler를 사용하여 글로벌 키보드 단축키를 처리 할 수 있습니다. 이 예는 여기에서 볼 수 있습니다
NativePreviewHandler nativePreviewHandler = new NativePreviewHandler() {
@Override
public void onPreviewNativeEvent(NativePreviewEvent event) {
if (event.getTypeInt() != Event.ONKEYDOWN) {
return;
}
final NativeEvent nativeEvent = event.getNativeEvent();
final boolean altKey = nativeEvent.getAltKey();
final boolean ctrlKey = nativeEvent.getCtrlKey();
if(altKey && ctrlKey && nativeEvent.getKeyCode() == 'A') {
// Do Something
}
}
};
Event.addNativePreviewHandler(nativePreviewHandler);
그러나 지금까지의 내가 klnow으로, 키보드 단축키뿐만 아니라 버튼/메뉴에 바인딩 작업의 어떤 종류를 처리하기 위해 GWT로 구축 더 일반적인 방법이 없습니다 . 그러한 추상화를 스스로 구현해야합니다.
1
이 코드가 도움이되기를 바랍니다. 여기에 document 요소에 키 다운 핸들러가 추가되었습니다.
RootPanel.get().addDomHandler(new KeyDownHandler() {
@Override
public void onKeyDown(KeyDownEvent event) {
if (event.isControlKeyDown()) {
char ch = (char) event.getNativeKeyCode();
if (ch == 's' || ch == 'S') {
// do operation for Ctrl+S
} else if (ch == 'c' || ch == 'C') {
// do operation for Ctrl+C
}
// add more or use switch case
}
}
}, KeyDownEvent.getType());
코드가 간단하고 매우 유용합니다. 감사. ** RootPanel **에서 keydown 이벤트를 묶는 것은 아주 좋은 아이디어입니다. 정말 고마워. – Cataclysm