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)子类窗口的标题无法显示又是什么情况??
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)子类窗口的标题无法显示又是什么情况??
当你WindowText win=new WindowText("这是我的窗口");
创建win这个实例时,因为WindowText自身实现了String参数的构造方法,所以它会去调用自身的构造方法,
而你在这个构造方法中并没有将你的参数赋值给title,所以当然标题不会显示。
你可以在WindowText的构造方法中加上setTitle(s)。
通过super(s)调用父类的构造方法,而父类Frame在构造方法中将s赋值给title,所以标题就会显示了。