在GWT中单击ESC(ESC)时关闭对话框
如何将addCloseHandler之类的内容添加到对话框中,以便在单击ESC键时关闭?您可以覆盖在GWT中单击ESC(ESC)时关闭对话框,gwt,keylistener,dialog,Gwt,Keylistener,Dialog,如何将addCloseHandler之类的内容添加到对话框中,以便在单击ESC键时关闭?您可以覆盖对话框的onPreviewNativeEvent()方法类: @Override public boolean onKeyDownPreview(char key, int modifiers) { switch (key) { case KeyCodes.KEY_ESCAPE: hide(); break; } r
对话框的onPreviewNativeEvent()
方法
类:
@Override
public boolean onKeyDownPreview(char key, int modifiers) {
switch (key) {
case KeyCodes.KEY_ESCAPE:
hide();
break;
}
return true;
}
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;
}
}
}
不幸的是,这是一个不推荐使用的方法,我不能使用它。唯一的问题是,这是一个预览事件,所以它可以由某个对话框子级处理。例如,选择(列表框)是用esc关闭的,等等。对于这种情况,我使用CellBasedWidgetImpl的dup来检查event.getNativeEvent().getTarget().cast()。非常感谢,在google中搜索,结果为上,这对我来说很有用,因为我更喜欢
if(event.getTypeInt()==event.ONKEYDOWN)
而不是开关/断路器,但两者都可以工作。