我想获得键码(字符串)而不是我尝试过的GWT keyUP事件处理程序中的本机键码,但我只能获得返回密钥ASCII的本机键码。是否有可能获得键码的字符串?
我认识到GWT不使用一些java JREs,他们只使用他们认为有用的JREs:(…真的很失望。我必须写一个驴工作代码,以获得功能做同样的工作,从GWT丢失的JREs,这里是我的代码来解决这个问题…我为写这样的代码感到羞愧,但是GWT让我没有其他选择,如果有人可以帮助请!
if((int)event.getNativeKeyCode()==13)
{
code="Enter";
}
if((int)event.getNativeKeyCode()==65)
{
code="A";
}
if((int)event.getNativeKeyCode()==66)
{
code="B";
}
if((int)event.getNativeKeyCode()==67)
{
code="C";
}
if((int)event.getNativeKeyCode()==68)
{
code="D";
}
if((int)event.getNativeKeyCode()==69)
{
code="E";
}
if((int)event.getNativeKeyCode()==70)
{
code="F";
}
if((int)event.getNativeKeyCode()==71)
{
code="G";
}
if((int)event.getNativeKeyCode()==72)
{
code="H";
}
if((int)event.getNativeKeyCode()==73)
{
code="I";
}
if((int)event.getNativeKeyCode()==74)
{
code="J";
}
if((int)event.getNativeKeyCode()==75)
{
code="K";
}
if((int)event.getNativeKeyCode()==76)
{
code="L";
}
if((int)event.getNativeKeyCode()==77)
{
code="M";
}
if((int)event.getNativeKeyCode()==78)
{
code="N";
}
if((int)event.getNativeKeyCode()==79)
{
code="O";
}
if((int)event.getNativeKeyCode()==80)
{
code="P";
}
if((int)event.getNativeKeyCode()==81)
{
code="Q";
}
if((int)event.getNativeKeyCode()==82)
{
code="R";
}
if((int)event.getNativeKeyCode()==83)
{
code="S";
}
if((int)event.getNativeKeyCode()==84)
{
code="T";
}
if((int)event.getNativeKeyCode()==85)
{
code="U";
}
if((int)event.getNativeKeyCode()==86)
{
code="V";
}
if((int)event.getNativeKeyCode()==87)
{
code="W";
}
if((int)event.getNativeKeyCode()==88)
{
code="X";
}
if((int)event.getNativeKeyCode()==89)
{
code="Y";
}
if((int)event.getNativeKeyCode()==90)
{
code="Z";
}
if((int)event.getNativeKeyCode()==48)
{
code="0";
}
if((int)event.getNativeKeyCode()==49)
{
code="1";
}
if((int)event.getNativeKeyCode()==50)
{
code="2";
}
if((int)event.getNativeKeyCode()==51)
{
code="3";
}
if((int)event.getNativeKeyCode()==52)
{
code="4";
}
if((int)event.getNativeKeyCode()==53)
{
code="5";
}
if((int)event.getNativeKeyCode()==54)
{
code="6";
}
if((int)event.getNativeKeyCode()==55)
{
code="7";
}
if((int)event.getNativeKeyCode()==56)
{
code="8";
}
if((int)event.getNativeKeyCode()==57)
{
code="9";
}
if((int)event.getNativeKeyCode()==96)
{
code="Numpad 0";
}
if((int)event.getNativeKeyCode()==97)
{
code="Numpad_1";
}
if((int)event.getNativeKeyCode()==98)
{
code="Numpad_2";
}
if((int)event.getNativeKeyCode()==99)
{
code="Numpad_3";
}
if((int)event.getNativeKeyCode()==100)
{
code="Numpad_4";
}
if((int)event.getNativeKeyCode()==101)
{
code="Numpad_5";
}
if((int)event.getNativeKeyCode()==102)
{
code="Numpad_6";
}
if((int)event.getNativeKeyCode()==103)
{
code="Numpad_7";
}
if((int)event.getNativeKeyCode()==104)
{
code="Numpad_8";
}
if((int)event.getNativeKeyCode()==105)
{
code="Numpad_9";
}
if((int)event.getNativeKeyCode()==106)
{
code="Multiply";
}
if((int)event.getNativeKeyCode()==107)
{
code="Add";
}
if((int)event.getNativeKeyCode()==109)
{
code="Subtract";
}
if((int)event.getNativeKeyCode()==110)
{
code="Decimal";
}
if((int)event.getNativeKeyCode()==111)
{
code="Divide";
}
if((int)event.getNativeKeyCode()==8)
{
code="BackSpace";
}
if((int)event.getNativeKeyCode()==9)
{
code="Tab";
}
if((int)event.getNativeKeyCode()==16)
{
code="Shift";
}
if((int)event.getNativeKeyCode()==17)
{
code="Control";
}
if((int)event.getNativeKeyCode()==20)
{
code="Caps_Lock";
}
if((int)event.getNativeKeyCode()==27)
{
code="ESC";
}
if((int)event.getNativeKeyCode()==32)
{
code="Space";
}
if((int)event.getNativeKeyCode()==33)
{
code="Page_Up";
}
if((int)event.getNativeKeyCode()==34)
{
code="Page_Down";
}
if((int)event.getNativeKeyCode()==35)
{
code="End";
}
if((int)event.getNativeKeyCode()==36)
{
code="Home";
}
if((int)event.getNativeKeyCode()==37)
{
code="Left_Arrow";
}
if((int)event.getNativeKeyCode()==38)
{
code="Up_Arrow";
}
if((int)event.getNativeKeyCode()==39)
{
code="Right_Arrow";
}
if((int)event.getNativeKeyCode()==40)
{
code="Down_Arrow";
}
if((int)event.getNativeKeyCode()==45)
{
code="Insert";
}
if((int)event.getNativeKeyCode()==46)
{
code="Delete";
}
if((int)event.getNativeKeyCode()==144)
{
code="Num_Lock";
}
if((int)event.getNativeKeyCode()==145)
{
code="ScrLk";
}
if((int)event.getNativeKeyCode()==186)
{
code=";";
}
if((int)event.getNativeKeyCode()==187)
{
code="=";
}
if((int)event.getNativeKeyCode()==189)
{
code="-";
}
if((int)event.getNativeKeyCode()==191)
{
code="/";
}
if((int)event.getNativeKeyCode()==192)
{
code="`";
}
if((int)event.getNativeKeyCode()==219)
{
code="[";
}
if((int)event.getNativeKeyCode()==221)
{
code="]";
}
if((int)event.getNativeKeyCode()==222)
{
code="'";
}
if((int)event.getNativeKeyCode()==188)
{
code=",";
}
if((int)event.getNativeKeyCode()==190)
{
code=".";
}
if((int)event.getNativeKeyCode()==191)
{
code="/";
}
参见Keycodes类。它提供了你可以使用的常量。
的例子:
switch (event.getNativeKeyCode()) {
case KeyCodes.ENTER: break;
case KeyCodes.KEY_P: break;
}
我不完全确定你的意思,但它可能只是你使用错误的键事件。如果我记得在一些浏览器上按下键或按下键传递不同的东西,一个给代码的其他字符。
基本上,keydown/keyup事件用于"键",而keypress用于"可打印字符"。如果你想要"字符",那么使用KeyPressHandler代替。Firefox会触发太多的事件(例如,即使对于不可打印的字符),但你可以很容易地判断,因为charCode将会为0。
你真的想在keyup中这样做吗?