那位高手能告诉我,我的 Frame 为什么非要在边框上鼠标拉动一下才能看到TextField 
和 Button啊?import java.awt.*;
import java.awt.event.*;
public class TestFrame extends Frame
{
TextField txt;
Button but;
public static void main(String[] args) 
{
TestFrame TF = new TestFrame();
}
TestFrame()
{
super("我的Frame");
setLayout(new FlowLayout());
setSize(300,400);
setVisible(true);
txt = new TextField(20);
add(txt);
but = new Button("好好学习");
add(but);
addWindowListener(new cls());
}
class cls extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
}

解决方案 »

  1.   

    import   java.awt.*;
    import   java.awt.event.*;
    public   class   TestFrame   extends   Frame {
        TextField   txt;
        Button   but;
        public   static   void   main(String[]   args) {
            TestFrame   TF   =   new   TestFrame();
        }
        TestFrame() {
            super( "我的Frame ");
            setLayout(new   FlowLayout());
            setSize(300,400);
            
            txt   =   new   TextField(20);
            add(txt);
            but   =   new   Button( "好好学习 ");
            add(but);
            addWindowListener(new   cls());
            setVisible(true);//组件填加最后才可以设置可见.
        }
        class   cls   extends   WindowAdapter {
            public   void   windowClosing(WindowEvent   e) {
                System.exit(0);
            }
        }
    }
      

  2.   

    如果要在组件填加进Frame前SetVisible,你要在实现中调用validate();
      

  3.   

    Frame一般都要加以下两个方法
    frame.pack();//调整窗口大小从而适应组件。
    frame.setVisible(true);//显示组件。
      

  4.   

    frame.pack();//缩紧组件,在首次打开frame时即可将全部组件显示出来