GWT-触发本机按键事件不会';不行?

GWT-触发本机按键事件不会';不行?,gwt,Gwt,当用户在文本框或文本区域中输入数据时,我想用另一个字符(例如“B”)替换输入的特殊字符(例如“a”)。我的代码如下: public void onKeyPress(KeyPressEvent event) { if (event.getNativeEvent().getCharCode() == 65 /*for 'A'*/){ event.preventDefault(); NativeEvent event1

当用户在文本框或文本区域中输入数据时,我想用另一个字符(例如“B”)替换输入的特殊字符(例如“a”)。我的代码如下:

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”开火。谁能告诉我原因吗?还是其他解决方案
谢谢。

尝试从
按键处理程序
切换到
按键处理程序

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

希望它能对您有所帮助。

胡乱猜测:您是否尝试过在
fireNativeEvent
之后移动
preventDefault
?@Darthenius您的猜测导致Firefox崩溃。我改变了尝试实现编辑器操作的方式。我的意思是,在按键时,我不触发新事件,而是获取文本框值(
getValue()
),将输入的字符替换为新字符,然后调用
setValue()
。谢谢