http://www.csdn.net/expert/topic/349/349217.xml
http://www.csdn.net/expert/topic/351/351451.xml

解决方案 »

  1.   

    不太清楚:(,我发现当dialog 的modal为true可以,为false就不行
    那唯有高见?
      

  2.   

    okyhc(超时):看一看这个程序,jdialog为无模式,为什么焦点还在text1上
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;class MyDialog extends JDialog{ public void setFocus(){
    okButton.requestFocus();
    } public MyDialog (JFrame f,boolean b) {
    super(f,b);
    Container c=getContentPane();
    c.setLayout(new GridLayout(3,1));
    c.add(text1);
    c.add(text2);
    c.add(okButton);
    setSize(200,200);
    setVisible(true);
    System.out.println("visible");
    okButton.requestFocus();
    okButton.setNextFocusableComponent(text2);
    text2.setNextFocusableComponent(text1);
    text1.setNextFocusableComponent(okButton);
    }
    public JTextField text1=new JTextField("text1");
    public JTextField text2=new JTextField("text2");
    public JButton okButton=new JButton("ok");}public class MyFoucs extends JFrame{
    public static void main(String[] args){
    final MyFoucs m=new MyFoucs();
    m.setTitle("myfoucs");
    m.setSize(200,300); m.addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent e){
    System.exit(0);
    }
    });
    JButton b=new JButton("1");
    m.getContentPane().add(b);
    m.setVisible(true);
    b.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
    MyDialog d=new MyDialog(m,false);
    d.setFocus();
    }
    });
    }
    }