mport java.awt.*;
class WindowText extends Frame
 { TextField text1,text2 ;
    WindowText(String s)
    { super(s);
       setLayout(new FlowLayout());
     text1=new TextField("输入密码",10);
     text1.setEditable(true);
     text2=new TextField(10);
        text2.setEchoChar('c');
        
        add(text1);
        add(text2);
       
        setBounds(100,100,200,150);
        setVisible(true);
      // validate();
    }
   
 }
public class Window1 { /**
 * @param args
 */
public static void main(String[] args)
{  WindowText win=new WindowText("这是我的窗口");
继承frame窗口容器类时为什么一定要通过super(s)调用父类的构造方法,我去掉super(s)子类窗口的标题无法显示又是什么情况??

解决方案 »

  1.   

    Frame(String title) 构造一个新的、最初不可见的、具有指定标题的 Frame 对象。你的WindowText这个子类中重写了父类Frame的Frame(String title)这个构造方法,
    当你WindowText win=new WindowText("这是我的窗口");
    创建win这个实例时,因为WindowText自身实现了String参数的构造方法,所以它会去调用自身的构造方法,
    而你在这个构造方法中并没有将你的参数赋值给title,所以当然标题不会显示。
    你可以在WindowText的构造方法中加上setTitle(s)。
    通过super(s)调用父类的构造方法,而父类Frame在构造方法中将s赋值给title,所以标题就会显示了。