我要做的是在GWT中触发输入键按下事件。 这是我的关键处理程序:
itemBox.addKeyDownHandler(new KeyDownHandler() {
public void onKeyDown(KeyDownEvent event) {
if(event.getNativeKeyCode == KeyCodes.KEY_ENTER) {
// do something
}
后来我想开一个回车按键事件,但我似乎无法弄清楚我是怎么做到的。我想做一些像KeyDownEvent.setNativeKeyCode(KEY_ENTER)的东西。
textBox.fireEvent(new KeyDownEvent(null));
是否可以设置这些参数?
答案 0 :(得分:8)
您可以使用DomEvent.fireNativeEvent而不是textBox.fireEvent来触发事件。
以下是如何执行此操作的工作示例:
final TextBox tb = new TextBox();
tb.addKeyDownHandler(new KeyDownHandler() {
@Override
public void onKeyDown(KeyDownEvent event) {
if(event.getNativeKeyCode() == KeyCodes.KEY_ENTER) {
Window.alert("enter!");
}
}
});
Button b = new Button("keyevent");
b.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
DomEvent.fireNativeEvent(Document.get().createKeyDownEvent(false, false, false, false, KeyCodes.KEY_ENTER), tb);
}
});
RootPanel.get().add(tb);
RootPanel.get().add(b);