GWT - 触发本机KeyPressEvent不起作用?

时间:2011-11-27 19:09:49

标签: gwt

当用户在TextBox或TextArea中输入数据时,我想将另一个特殊输入字符(例如' A')替换为另一个字符(例如' B')。我的代码如下:

public void onKeyPress(KeyPressEvent event) {       

    if (event.getNativeEvent().getCharCode() == 65 /*for 'A'*/){            
        event.preventDefault(); 
        NativeEvent event1 = 
        Document.get().createKeyPressEvent(false, false, false, false, 66 /* for 'B'*/);                        
        DomEvent.fireNativeEvent(event1, theTextBox);       
}           

我认为它应该没问题(根据GWT文档),但实际上它只会工作到event.preventDefault();,其余部分似乎被忽略了。我的意思是它只是删除了A'但是并没有为B'开火。谁能告诉我原因?或任何其他解决方案?
谢谢。

1 个答案:

答案 0 :(得分:0)

尝试从KeyPressHandler切换到KeyDownHandler

public void onKeyDown(KeyDownEvent event) {
    if( event.getNativeKeyCode() == 65 ) {
        //do the character replacement here
    }
}

希望它会对你有所帮助。