我需要在每个按键事件中打印方法中的内容。我已经尝试了下面的代码,问题是,第一次按键始终返回null。然而,在键入第二个字母后,它会打印第一个键事件。按键事件未捕获第一个事件的信件。你能帮忙解决这个问题吗?
final StringComboBox searchGridTextBox = new StringComboBox();
searchGridTextBox.setEmptyText("Search Grid");
searchGridTextBox.addFocusHandler(new FocusHandler(){
@Override
public void onFocus(FocusEvent event){
if(searchGridTextBox.getStore().size() > 0)
searchGridTextBox.expand();
}
});
searchGridTextBox.addKeyPressHandler(new KeyPressHandler() {
@Override
public void onKeyPress(KeyPressEvent event) {
System.out.println("On key press event ") ;
}
});
答案 0 :(得分:1)
对于此方案,您需要使用KeyUpEvent。请在下面找到更新的代码。
final StringComboBox searchGridTextBox = new StringComboBox();
searchGridTextBox.setEmptyText("Search Grid");
searchGridTextBox.addFocusHandler(new FocusHandler(){
@Override
public void onFocus(FocusEvent event){
if(searchGridTextBox.getStore().size() > 0)
searchGridTextBox.expand();
}
});
searchGridTextBox.addKeyUpHandler(new KeyUpHandler() {
@Override
public void onKeyUp(KeyUpEvent event) {
System.out.println("On key up event ") ;
}
});
答案 1 :(得分:0)
还有2个处理程序可用keyUp和keyDown处理程序。尝试使用keyUp / keyDown处理程序,看看它是否符合您的要求。
keyPress在空组合框的情况下的行为有所不同,本文将对此进行解释: