可以用  button.requestFocus() 使此按钮获得焦点

解决方案 »

  1.   

    加一个内嵌类:
    class KeyAction extends KeyAdapter
        {        public void keyPressed(KeyEvent keyevent)
            {
                if(keyevent.getKeyCode() == 10)
                {
                    okButton.requestFocus();
                    user = userName.getText();
                    //pass = BASE64Encoder.encode(new String(password.getPassword()));
                    pass = new String(password.getPassword());
                    startConnection();
                }
            }        KeyAction()
            {
            }
        }
      

  2.   

    import javax.swing.*;
    import javax.swing.border.EtchedBorder;
    import java.awt.*;
    import java.awt.event.*;interface MyInitScheme {
    void initVarient();
    void initFace();
    }
    class MyMenu extends JMenu implements MyInitScheme {
    public MyMenu(String text) {
    super(text);
    initVarient();
    initFace();
    }
    public void initFace() {
    setBackground(SystemColor.desktop);
    setFont(new Font("Serif", 0, 16));
    setForeground(SystemColor.info);
    setBorder(BorderFactory.createEtchedBorder());
    }
    public void initVarient(){};
    }
    class MyMenuItem extends JMenuItem implements MyInitScheme {
    public MyMenuItem(String text) {
    super(text);
    initVarient();
    initFace();
    }
    public void initFace() {
    setBackground(SystemColor.desktop);
    setFont(new Font("Serif", 0, 16));
    setForeground(SystemColor.info);
    setBorder(BorderFactory.createEtchedBorder());
    }
    public void initVarient(){};
    }
    class MyButton extends JButton implements MyInitScheme {
    public MyButton(String text) {
    super(text);
    initVarient();
    initFace();
    }
    public void initFace() {
    setBackground(SystemColor.desktop);
    setFont(new Font("Serif", 0, 16));
    setForeground(SystemColor.info);
    setBorder(BorderFactory.createEtchedBorder());
    }
    public void initVarient(){};
    }class MyFrame extends JFrame implements MyInitScheme {
    private JMenuBar mnuBar = new JMenuBar();
    private MyMenu mnuFile = new MyMenu("File");
    private JMenuItem mnuFileExit = new MyMenuItem("Exit");
    private JMenu mnuHelp = new MyMenu("Help");
    private JMenuItem mnuHelpContact = new MyMenuItem("Contact Me");
    private JButton btnDefault = new MyButton("Default");
    private JButton btnOther = new MyButton("Another");
    private KeyAdapter key=new KeyAdapter() {
    public void keyPressed(KeyEvent e) {
    if(e.getKeyCode()==KeyEvent.VK_ENTER) {
    btnDefault.requestFocus();
    }
    }
    }; public void initVarient(){};
    public void initFace() {
    this.setSize(new Dimension(320, 240));
    this.setResizable(false);
    this.getContentPane().setLayout(null);
    this.getContentPane().setBackground(SystemColor.activeCaption);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); mnuBar.setBackground(SystemColor.desktop);
    mnuBar.setBorder(BorderFactory.createRaisedBevelBorder()); mnuFile.setMnemonic('F');
    mnuFileExit.setMnemonic('x');
    mnuFileExit.addActionListener(new ActionListener () {
    public void actionPerformed(ActionEvent e) {
    System.exit(0);
    }
    } ); mnuHelp.setMnemonic('H');
    mnuHelpContact.setMnemonic('M');
    mnuHelpContact.addActionListener(new ActionListener () {
    public void actionPerformed(ActionEvent e) {
    try {
    Process p=Runtime.getRuntime().exec("C:/Program Files/"
    +"Internet Explorer/IExplore.EXE"
    +" mailto:[email protected]");
    } catch (Exception ex) {
    System.out.println(ex);
    }
    }
    } ); btnDefault.setBounds(new Rectangle(220, 50, 75, 30));
    btnDefault.setMnemonic('D'); btnOther.setBounds(new Rectangle(220, 100, 75, 30));
    btnOther.setMnemonic('A'); btnOther.addKeyListener(key);
    addKeyListener(key); mnuFile.add(mnuFileExit);
    mnuHelp.add(mnuHelpContact);
    mnuBar.add(mnuFile);
    mnuBar.add(mnuHelp); this.setJMenuBar(mnuBar);
    this.getRootPane().setDefaultButton(btnDefault);
    this.getContentPane().add(btnDefault, null);
    this.getContentPane().add(btnOther, null);
    } public MyFrame(String title) {
    super(title);
    initVarient();
    initFace();
    show();
    btnOther.requestFocus();
    }
    }
    public class MyButtonApp extends JFrame {
    public static void main(String[] args) {
    JFrame frame=new MyFrame("Test MyButton");
    }
    }
      

  3.   

    buttom.addKeyListener(new KeyAction());
      

  4.   

    对了,对容器里的所有可以获得焦点的控件都要添加这个事件,原来工具条和菜单可以加块捷键。但是别的地方好象没有,现在不知JDK1.4怎样了。
      

  5.   

    Iforgot(清风雨):
    兄台的代码看起来好舒服啊,学习学习!
      

  6.   

    请教一下“为E消的人憔悴”,按照你的方法button.requestFocus() ,怎么不好用呢?
      

  7.   

    getRootPane().setDefaultButton(okButton);