我想获取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="/";
}
答案 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中做到这一点吗?