GWT-无法将文本输入TextArea

GWT-无法将文本输入TextArea,gwt,textarea,Gwt,Textarea,我有一个奇怪的问题要解决。 我有一个GWT文本区域,在那里无法输入文本,但是,我能够自动设置文本 我已经试过了 textBox.setEnabled(true); textBox.setFocus(true); textBox.setReadOnly(false); 但它没有改变任何事情。 在浏览css文件时,我觉得一切正常 以下是“全部”源代码: private Input(AbsolutePanel canvas) { textBox = new MouseEventTextBo

我有一个奇怪的问题要解决。 我有一个GWT文本区域,在那里无法输入文本,但是,我能够自动设置文本

我已经试过了

textBox.setEnabled(true);
textBox.setFocus(true);
textBox.setReadOnly(false);
但它没有改变任何事情。 在浏览css文件时,我觉得一切正常

以下是“全部”源代码:

private Input(AbsolutePanel canvas) {

    textBox = new MouseEventTextBox();
    textBox.setStylePrimaryName(PRIMARY_STYLE);
    textBox.addKeyUpHandler(this);
    textBox.addKeyDownHandler(this);
    textBox.addFocusHandler(this);
    textBox.addBlurHandler(this);
    textBox.setEnabled(true);
    textBox.setFocus(true);
    textBox.setReadOnly(false);
    textBox.setText("Just an apple"); // Works, text is set but not editable
    canvas.add(textBox, -1000, -1000);
}

private class MouseEventTextBox extends TextArea{
    public MouseEventTextBox() {
        super();
        sinkEvents(Event.MOUSEEVENTS);
    }

    public void onBrowserEvent(Event event) {
        // Call the superclass' implementation first.
        super.onBrowserEvent(event);

        if ((DOM.eventGetButton(event) == Event.BUTTON_LEFT) && (DOM.eventGetType(event) == Event.ONMOUSEUP)) {
            this.setReadOnly(false);
            DOM.eventCancelBubble(event, true);
        }
    }
}
CSS

也许,有人能给我一个提示或者知道这里出了什么问题


多谢各位

您的代码中可疑的部分是:

textBox.addKeyUpHandler(this);
textBox.addKeyDownHandler(this);
textBox.addFocusHandler(this);
textBox.addBlurHandler(this);
这意味着,
this
实现了
keyupdhandler
keydowndhandler
FocusHandler
BlurHandler
。不幸的是,您没有向我们展示处理这些事件的方法

我敢打赌,您的
onKeyDown
方法有问题。当我阻止
KeyDownEvent
事件(
stopPropagation
preventDefault
)时,我能够实现相同的行为


检查浏览器控制台是否有错误。如果没有,则注释掉
textBox.addKeyDownHandler(此)行。

您的代码中可疑的部分是:

textBox.addKeyUpHandler(this);
textBox.addKeyDownHandler(this);
textBox.addFocusHandler(this);
textBox.addBlurHandler(this);
这意味着,
this
实现了
keyupdhandler
keydowndhandler
FocusHandler
BlurHandler
。不幸的是,您没有向我们展示处理这些事件的方法

我敢打赌,您的
onKeyDown
方法有问题。当我阻止
KeyDownEvent
事件(
stopPropagation
preventDefault
)时,我能够实现相同的行为


检查浏览器控制台是否有错误。如果没有,则注释掉
textBox.addKeyDownHandler(此)线路。

对不起,这么晚才回答。这是我的onKeyDown方法。正如我所看到的,它只处理KEY代码:public void onKeyDown(KeyDownEvent事件){if(menuOptions==null){switch(event.getNativeKeyCode()){case KeyCodes.KEY\u ENTER:case KeyCodes.KEY\u UP:case KeyCodes.KEY\u DOWN:case KeyCodes.KEY\u选项卡:hide(true);break;默认值:DOM.eventCancelBubble(DOM.eventGetCurrentEvent(),true);break;}}}}请尝试注释掉
textBox.add***处理程序(此)行,然后查看
文本框
之后是否工作。同时检查浏览器控制台是否存在可能的错误。你使用哪个GWT版本?嗨,亚当,非常感谢。不,似乎我可以在文本框中输入文本。嗯,我真的很想知道为什么现在能用?对不起,这么晚才回答。这是我的onKeyDown方法。正如我所看到的,它只处理KEY代码:public void onKeyDown(KeyDownEvent事件){if(menuOptions==null){switch(event.getNativeKeyCode()){case KeyCodes.KEY\u ENTER:case KeyCodes.KEY\u UP:case KeyCodes.KEY\u DOWN:case KeyCodes.KEY\u选项卡:hide(true);break;默认值:DOM.eventCancelBubble(DOM.eventGetCurrentEvent(),true);break;}}}}请尝试注释掉
textBox.add***处理程序(此)行,然后查看
文本框
之后是否工作。同时检查浏览器控制台是否存在可能的错误。你使用哪个GWT版本?嗨,亚当,非常感谢。不,似乎我可以在文本框中输入文本。嗯,我真的很想知道为什么它现在起作用了?