首先,監聽鍵盤相應的控件必須是得到焦點(focus)的狀況下才能起做用.
其次,若是你要實現的效果是焦點在任何其餘控件上時(好比其餘button)回車也能起做用,那麼,
這個動做的監聽控件就不該該是你的登錄button,由於此時你的焦點在其餘地方,你的登錄button並無焦點,
因此沒法得到響應.要在這種狀況下使回車鍵響應,必須將你的監聽控件設置在你的panel或fram或更底層的級別上,
這樣只要焦點在此控件中任何一個button上,監聽動做才能響應, 好比:
Panel p = new Panel();
JButton b1 = new JButton();
JButton b2 = new JButton();
p.add(b1);
p.add(b2);
p.addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e){......} });
p.setFocusable(true);//給p提供焦點.這是swing的焦點問題,JFrame 、JComponent、JLabel默認是不能夠得到焦點,
並且默認狀況下,swing是把焦點分配給容器內能夠得到焦點的第一個組件