想让点击按钮或敲回车键时都响应loginEvent();按下面这样写不行么?怎么没反应,而且我把ActionListener改成MouseListener来实现,鼠标点击都是好的,但是回车键都是没反应。
jButton1.addKeyListener(new KeyAdapter()
{
   public void keyPressed(KeyEvent ke)
{
   if (ke.getKeyChar() == KeyEvent.VK_ENTER)
{
    loginEvent();
}
}
});

jButton1.addActionListener(new ActionListener()
{
    public void actionPerformed(ActionEvent e)
{
    loginEvent();
}
});另外,如果用getRootPane().setDefaultButton(jButton1);好像也有问题,我的界面上有2个button,我按完另一个按钮(jButton2)会弹出个frame,关掉弹出的frame回到这个界面时,我按回车,它就默认为jButton2了,是不是一定要加jButton2.setDefaultCapable(false); 

解决方案 »

  1.   

    我刚试了下,在jButton2里加了jButton2.setDefaultCapable(false);在jButton1处也加了jButton1.requestFocus()也没用。
      

  2.   

    requestFocus()方法要在组件显示之后调用才有效
      

  3.   

    function addEvent (el, event, listener) {
            if (el.addEventListener){
                el.addEventListener(event, listener, false);
            } else if (el.attachEvent){
                el.attachEvent('on' + event, listener);
            }
        };addEvent (jButton1, "keydown", function (e) {
         var e = e || window.event;
         if (13 == e.keyCode) {
                        loginEvent(); 
         }
         });
    这样应该可以的,我都一直在用