试图获取ENTER键的char代码

时间:2011-11-21 17:33:37

标签: java gwt

我有这个代码:

newSymbolTextBox.addKeyPressHandler(new KeyPressHandler() {
  public void onKeyPress(KeyPressEvent event) {
      System.out.println("foo =" + KeyCodes.KEY_ENTER);
  System.out.println("bar =" + event.getCharCode());
  }
});

当我按下ENTER时,我得到了这个输出:

foo =13
bar =

我期待bar =之后的值。有什么想法吗?

4 个答案:

答案 0 :(得分:8)

事实上,价值就在那里。你没有看到任何东西的原因是因为这个角色是回车。我相信回车只是移动下一行(你可以谷歌它的确切功能)。如果你google" ascii table"你会看到你从KeyCodes.KEY_ENTER获得的13对应CR(回车符)。

答案 1 :(得分:8)

您需要使用event.getNativeEvent().getKeyCode()或切换为KeyDownHandler

newSymbolTextBox.addKeyPressHandler(new KeyDownHandler() {
  public void onKeyDown(KeyDownEvent event) {
      System.out.println("foo =" + KeyCodes.KEY_ENTER);
      System.out.println("bar =" + event.getNativeKeyCode());
  }
});

请参阅http://code.google.com/p/google-web-toolkit/issues/detail?id=5558

答案 2 :(得分:0)

KeyCodes.KEY_ENTER是Enter键的整数值。 event.getCharCode()是字符表示,因此它会在bar =

之后显示为换行符

答案 3 :(得分:0)

在带有java 7的Windows中,两种情况都返回10。

要显示char的数字值,需要将其转换为int。

System.out.println((int) e.getKeyChar());