java组件如何初始化?
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);//请告诉我这是做什么
this.getContentPane().setLayout(null);//请告诉我这是做什么
this.add(getJLabel(), null);//全部没初始化
this.add(getJTextField(), null);//全部没初始化
this.add(getJButton(), null);//请告诉我这些到底是做什么
this.setTitle("HelloWorld");
}
private javax.swing.JLabel getJLabel() {//请告诉我这是做什么
if(jLabel == null) {
jLabel = new javax.swing.JLabel();
jLabel.setBounds(34, 49, 53, 18);
jLabel.setText("Name:");
}
return jLabel;
}
private javax.swing.JTextField getJTextField() {
if(jTextField == null) {
jTextField = new javax.swing.JTextField();
jTextField.setBounds(96, 49, 160, 20);
}
return jTextField;
}
private javax.swing.JButton getJButton() {
if(jButton == null) {
jButton = new javax.swing.JButton();
jButton.setBounds(103, 110, 71, 27);
jButton.setText("OK");
}
return jButton;
}
public static void main(String[] args)
{
HelloWorld w = new HelloWorld();
w.setVisible(true);
}
解释所有问题3的代码,包括private javax.swing.JButton getJButton()和
private javax.swing.JTextField getJTextField()