我在Mac OS下,用java写的,我对JTextField注册了KeyAdapter,然后重写了keyTyped和keyPressed,其中keyPressed我希望实现,如果用户按下上下左右它就能把焦点往相应方向的控件上移动的功能,其中keyPressed里的代码如下:
public void keyPressed(KeyEvent e){ int index = m_dataVector.indexOf((JTextField)e.getSource()); //System.out.println(e.getExtendedKeyCode()); switch(e.getExtendedKeyCode()){ case KeyEvent.VK_UP: if (index > 8 ) m_dataVector.get(index-9).grabFocus(); break; case KeyEvent.VK_DOWN: if (index < 72) m_dataVector.get(index+9).grabFocus(); break; case KeyEvent.VK_LEFT: if (index > 0 ) m_dataVector.get(index-1).grabFocus(); break; case KeyEvent.VK_RIGHT: if (index < 80) m_dataVector.get(index+1).grabFocus(); break; //default: System.out.println("nothing"); break; } };
其中注释的位置是我用来查看返回的键代码,如果不注释它,打开程序后,按下任何一个键,出来的数字都是0,求解,我在ubuntu下编译运行一切正常,在mac下就不行呢?