如何检测NativeEvent中的数字键?

时间:2013-02-09 15:08:10

标签: java javascript events gwt

查看com.google.gwt.dom.client.NativeEvent extends JavaScriptObject,如何检测事件是否为数字? 我想到了Character.isDigit(event.getKeyCode()),但这会给我一个错误:

  

方法isDigit(char)中的Character类型不适用于arguments(int)

我怎么能发现他的? 我正在使用GWT Java。

2 个答案:

答案 0 :(得分:3)

事实证明我必须进行投射:(char) event.getKeyCode(); 这样isDigit(char)可以毫无问题地使用。

答案 1 :(得分:3)

解决方案1 ​​

addKeyPressHandler( new KeyPressHandler()
{
  public void onKeyPress( KeyPressEvent event )
  {
   char charCode = event.getCharCode();
   if ( Character.isDigit( charCode ) )
   {
    System.out.println("This is a digit!!!");
   }
  }
}

解决方案2

public void onBrowserEvent( com.google.gwt.cell.client.Cell.Context context, Element parent, String value, NativeEvent event, ValueUpdater<String> valueUpdater )
    {       
        if ( "keypress".equals( event.getType() ) )
        {
            int charCode = event.getCharCode();
            if ( !Character.isDigit( ( char ) charCode ) )
            {
              System.out.println("This is a digit!!!");
            }
        }
        super.onBrowserEvent( context, parent, value, event, valueUpdater );
    }