【发布时间】:2011-05-17 03:44:49
【问题描述】:
如何在单击 ESC 键时关闭的对话框中添加 addCloseHandler 之类的内容?
【问题讨论】:
标签: gwt keylistener dialog
如何在单击 ESC 键时关闭的对话框中添加 addCloseHandler 之类的内容?
【问题讨论】:
标签: gwt keylistener dialog
您可以覆盖DialogBox 类的onPreviewNativeEvent() 方法:
public void onModuleLoad() {
ExtendedDialogBox dialog = new ExtendedDialogBox();
dialog.add(new Label("some content"));
dialog.show();
}
private class ExtendedDialogBox extends DialogBox {
@Override
protected void onPreviewNativeEvent(NativePreviewEvent event) {
super.onPreviewNativeEvent(event);
switch (event.getTypeInt()) {
case Event.ONKEYDOWN:
if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ESCAPE) {
hide();
}
break;
}
}
}
【讨论】:
if (event.getTypeInt() == Event.ONKEYDOWN) 而不是 switch/break,但两者都可以工作。
@Override
public boolean onKeyDownPreview(char key, int modifiers) {
switch (key) {
case KeyCodes.KEY_ESCAPE:
hide();
break;
}
return true;
}
【讨论】: