GWT制作虚拟键盘

GWT制作虚拟键盘,gwt,Gwt,我有带键盘按钮的弹出面板。任务是在单击按钮时在登录弹出面板的文本字段中输入文本。 我试着启动按键并按下事件,但它并没有在字段中写入文本 final KeyButton keyBut = new KeyButton(smallBut.toString(),smButprs.toString(),codeBut,isShift); keyBut.addClickHandler(new ClickHandler() { @Override

我有带键盘按钮的弹出面板。任务是在单击按钮时在登录弹出面板的文本字段中输入文本。 我试着启动按键并按下事件,但它并没有在字段中写入文本

        final KeyButton keyBut = new KeyButton(smallBut.toString(),smButprs.toString(),codeBut,isShift);
        keyBut.addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                txtBox.setFocus(true);
                DomEvent.fireNativeEvent(Document.get().createKeyDownEvent(false, false, keyBut.isShiftKeyDown(), false,keyBut.getKeyCode()), txtBox);
                DomEvent.fireNativeEvent(Document.get().createKeyUpEvent(false, false, keyBut.isShiftKeyDown(), false,keyBut.getKeyCode()), txtBox);
                DomEvent.fireNativeEvent(Document.get().createKeyPressEvent(false, false, keyBut.isShiftKeyDown(), false,keyBut.getKeyCode()), txtBox);
                //DomEvent.fireNativeEvent(Document.get().createKeyPressEvent(false, false, keyBut.isShiftKeyDown(), false,68), txtBox);
            }
        });
试试这个:

keyBut.addClickHandler(new ClickHandler() {

    @Override
    public void onClick(ClickEvent event) {
        // If this is a button for "a"
        textBox.setValue(textBox.getValue() + "a");
    }

});

我知道这个解决方案。但我有像CAPS LOCK、ENTER这样的按钮,这需要另一个决定。如果我能发送事件,那就简单了。为什么?!您可以检查是否按下CAPS LOCK,并添加“A”而不是“A”。如果单击ENTER,则可以添加新行符号。既然可以在一行代码中完成,为什么还要选择更复杂的解决方案呢?