回车本来就可以起到点击按扭的功能吧,还想怎样呢?
如果真想看到动态效果的话那,恐怕只有用到EventQueue类了,按回车键时发给按钮一个MouseEvent.MOUSE_DOWN消息,让他保持按下状态

解决方案 »

  1.   

    楼上的大哥们,我又不是白——痴
    正因为一般的习惯是回车触发焦点所在的按钮,所以我才要改
    java 的 swing里默认的只能空格触发
      

  2.   

    填加个Listener行不?
    jButton4.addKeyListener(new KeyAdapter()
        {
          public void keyPressed(KeyEvent e)
          {
            if (e.getKeyChar()==e.VK_ENTER)
              {
                .....
              }
          }
        }
      

  3.   

    回 :小地主
    这个我试过,一点作用也没有我想过一个方法
    给每个按钮都加个.addKeyListener
    然后在具体的方法里处理时先取得当前的焦点在哪个按钮上
    然后再决定触发
    不过不知道具体怎么写,而且我要改的地方可能还挺多,这样似乎有点麻烦
      

  4.   

    studying 
    ....
    关注。
      

  5.   

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;public class KeyEventTest
    {
    public static void main(String args[])
    {
        JFrame aFrame = new KeyEventFrame();
        aFrame.setSize(400, 300);
        aFrame.setLocationRelativeTo(null);
        aFrame.show();
    }
    }class KeyEventFrame extends JFrame implements ActionListener
    {
    JLabel message;

    public KeyEventFrame()
    {
    super("KeyEventTest");
    Container contentPane = getContentPane();
    JButton b_sure = new JButton("确定");
    JButton b_cancel = new JButton("取消");
    message = new JLabel("Hi, How are you?");

    contentPane.add(message);
    Box buttonPane = Box.createHorizontalBox();
    buttonPane.add(Box.createGlue());
    buttonPane.add(b_sure);
    buttonPane.add(b_cancel);
    buttonPane.add(Box.createGlue());

    contentPane.add(buttonPane, BorderLayout.SOUTH);

    getRootPane().registerKeyboardAction(new OKAction(message),
            KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), 
            JButton.WHEN_IN_FOCUSED_WINDOW); 
            getRootPane().registerKeyboardAction(this,
            KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), 
            JComponent.WHEN_IN_FOCUSED_WINDOW);
    }

    public void actionPerformed(ActionEvent e)
    {
    dispose();
    }
    }

    class OKAction implements ActionListener
    {
    JLabel aLabel;

    public OKAction(JLabel aLabel)
    {
    this.aLabel = aLabel;
    }

    public void actionPerformed(ActionEvent e)
    {
            aLabel.setForeground(Color.RED);
            aLabel.setText("Yes, you got it!");
    }
    }
      

  6.   

    flywind63(紫色的偶然)
    你给的对吗,兄弟给点解释吧,
    你给的例子只是侦听到了回车键啊
      

  7.   

    InputMap map = new InputMap();
            map.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, false), "pressed");
            map.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, true), "released");
            UIManager.put("Button.focusInputMap", map);
    这样把空格屏蔽掉, 变成回车键响应.
    只要在程序运行之初设置一下, 所有的按钮都改变.
      

  8.   

    bradwoo8621() 
    总算是可以实现我的做法:)虽然空格去掉了,结帖