我记得好像JDialog是不能够通过构造函数来实现requeseFocus()的,JFrame是可以的,具体的我也不太清楚了,不过为什么不能用加入次序的方法呢?我搞不明白!因为你的多个panel最外层也要getContentPane().add()的,而你只要在含有这个inputarea的panel中先把它add近来就可以了!

解决方案 »

  1.   

    给你段代码看看,问题就在于没有显示之前是没有焦点的.
    JTextField text1=new JTextField();
    JTextField text2=new JTextField();
    public class Test extends JPanel{
    public Test(){
        setLayout(new BorderLayout());
        add(text1,BorderLayout.NORTH);
        add(text2,BorderLayout.SOUTH);
    }
        public static void main(String args[])
        {        JFrame f=new JFrame();
            Test t=new Test();
            f.getContentPane().add(t);
            f.pack();
            f.setVisible(true);//问题就在这
            t.text2.requestFocus();//现在text2就能获得焦点.你把这句注掉再 
                                     试,情况如何?
        }
    }
    明白了吧!快给分哦!
      

  2.   

    问题成功解决,用的是改变add()顺序的方法!
    谢谢,接分~~~~~~!