GWT文本框值更改处理程序

GWT文本框值更改处理程序,gwt,textbox,Gwt,Textbox,我有一个文本框,用于在我的应用程序中搜索产品。此TextBox应在用户键入TextBox的关键字后或当用户点击ENTER时进行搜索 为了能够进一步解释,这个文本框的工作原理类似于谷歌的搜索框,用户输入后立即查看搜索结果 我已经尝试了ValueChangeHandler,但是只有当文本框失去焦点时才会触发事件。我还尝试了KeyPressEventHandler,但我只想在用户输入关键字后触发搜索事件,而不是在每次按键时。有人能告诉我怎么做吗 我正在考虑使用GWT计时器在特定时间后触发搜索事件。只有

我有一个
文本框
,用于在我的应用程序中搜索产品。此
TextBox
应在用户键入
TextBox
的关键字后或当用户点击
ENTER
时进行搜索

为了能够进一步解释,这个
文本框
的工作原理类似于
谷歌的
搜索框,用户输入后立即查看搜索结果

我已经尝试了
ValueChangeHandler
,但是只有当
文本框
失去焦点时才会触发事件。我还尝试了
KeyPressEventHandler
,但我只想在用户输入关键字后触发搜索事件,而不是在每次按键时。有人能告诉我怎么做吗


我正在考虑使用
GWT
计时器
在特定时间后触发搜索事件。只有当用户不再键入
文本框的键时,计时器才会运行,但我如何知道是否触发了
KeyPressEvent

使用KeyPressEventHandler或keypupeventhandler并检查最后键入的字符是否等于空白。我认为您可以从事件对象接收触发事件的密钥。否则,请使用TextBox的getText()方法。仅当检测到空白或输入时才更新搜索结果。我知道,如果用户在一个单词后停止键入:-),这并不能解决问题。

这对我很有用:

@UiHandler("searchBox")
public void onKeyUpEvent(KeyUpEvent keyPress) {
   // do the search
}

您需要KeyUpEvent,KeyPressEventHandler将总是迟到…

我检查了按下的键的处理程序代码,并根据它执行一些操作

searchQueryTextBox.addKeyUpHandler(new KeyUpHandler() {
        @Override
        public void onKeyUp(KeyUpEvent event) {
            if (event.getNativeKeyCode() == 13 || event.getNativeKeyCode() == 32) {
                //run a search. code 13 - key "Enter", code 32 - key "Space"
            } 
        }
    });

只有当你按下回车键时才会进行搜索,@july需要谷歌的即时搜索行为。此外,解决方案也是一样的。我意识到@july想要搜索只在单词已满时开始,而不是在每次点击键后开始。或者当你按下Enter时,你会考虑使用GWT的提示框吗?您必须修改它以符合您的需要,但它比文本框更接近您所描述的内容