java组件初始化

来源:百度知道 编辑:UC知道 时间:2024/05/25 15:15:25
java组件如何初始化?

问题1
我在书上看到一个代码

setLayout(new GridLayout(1,2));
add(new JButton("Button1"));
add(new JButton("Button2"));
add(new JButton("Button3"));

为什么button没这样初始化(例如button 1=new button("asas"))就可以add了?
不是要这样吗?button 1=new button("button")然后才add(1)

问题2
这是一个Frame初始化
Frame ff=new Frame("frame初始化");
ff.setSize(200,300);
ff.setBackground(Color.cyan);
ff.setVisible(true);
但是我看到书上
/**some code*/
class test extends Frame
{
public test
{
setSize(400,400);
setBackground(Color.cyan);
setVisible(true);
}
}
/**some code*/
为什么没定义和初始化任何Frame就可以用了?

问题3
这个更强
/**some code*/
public class HelloWorld extends JFrame
public HelloWorld()
{
super();//请告诉我这是做什么
this.setSize(300, 200)

问题一:
书上的简写方法
JButton jb=new JButton("OK"); //先创建
add(jb); //再添加
--------
add(new JButton("OK")); //合体写法

问题二:

class test extends Frame
类test继承了Frame类,于是test类就是Fream类了(代表)
在用构造方法构造一个自己的对象public test { }

问题三:

public class HelloWorld extends JFrame
public HelloWorld()
{
super();//调用本类的父类的构造函数
this.setSize(300, 200);//设置本类创建的对象(窗体)的大小
this.getContentPane().setLayout(null);//设置对象的版面
this.add(getJLabel(), null);//
this.add(getJTextField(), null);//
this.add(getJButton(), null);//
//上面3句是调用本类的3个方法来创建对象,用add()方法添加到面版上
//this. 是调用自己类创建的对象的方法或者属性
this.setTitle("HelloWorld");
}

private javax.swing.JLabel getJLabel() {
...
...
}
//类里的一个方法,返回值是JLable类型。是个private(私有),只有自己类的对象才能调用。
他的作用就是创建一个JLabel的对象并返回
在上面的this.add(getJTextField(), null);你就懂了吧,调用getJTextField()方法得到一个JTextField对象,在添加到