是否有可能获得密钥代码而不是GWT中的Native密钥代码?

时间:2011-04-23 23:30:19

标签: gwt

我想获取keycode(String)而不是我试过的GWT keyUP事件处理程序中的Native键码,但我只能获得返回键的ASCII的本机键码。是否可以获取密钥的字符串?

我认识到GWT不使用一些Java JRE,他们只使用他们认为有用的JRE :( ...真的很失望。我必须编写一个驴工作代码,以便获得与工作相同的功能。从GWT丢失了JRE,这是我解决这个问题的代码......我觉得编写这样的代码感到很遗憾但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="/";
            }

3 个答案:

答案 0 :(得分:2)

请参阅Keycodes课程。它提供了可以使用的常量。

示例:

switch (event.getNativeKeyCode()) {
    case KeyCodes.ENTER: break;
    case KeyCodes.KEY_P: break;
}

答案 1 :(得分:1)

我不完全是你的意思,但可能只是你使用了错误的关键事件。如果我记得某些浏览器是keydown,或者它是按键提供不同的东西,那么就会为其他字符提供代码。

答案 2 :(得分:1)

基本上,keydown / keyup事件用于“键”,而keypress用于“可打印字符”。如果你想要“chars”,那么请改用KeyPressHandler。 Firefox将触发太多事件(即使对于不可打印的字符),但您可以轻松判断,因为charCode将为0。

你有什么理由想要在keyup中做到这一点吗?