import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.*;
public class XueDaoFrame1 extends JPanel{
public static void main(String[] args) {
JFrame frame1=new JFrame();
XueDaoFrame1 XDframe1=new XueDaoFrame1();
frame1.getContentPane().add(XDframe1);
// frame1.setVisible(true); // 1、 此处过早的将窗口显示,但窗口大小没有设置
frame1.setSize(700,700);
JScrollPane scrollPane=new JScrollPane(XDframe1);
frame1.getContentPane().add(scrollPane,BorderLayout.CENTER);
//2、此处建议使用Frame.getContentPane().add来代替原Frame.add(),JDK1.5已经不通过frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
/*frame1.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
} // 3、这个内部类和上一句功能相同,保留上一句就可以了
});
}*/
private JLabel label[] ;
private JCheckBox checkBox;
private ImageIcon imageIcon;
private JTextArea textArea;
private JPanel panel1;
public XueDaoFrame1(){
super();
this.setLayout(new GridLayout(8,3));
label=new JLabel[20];
checkBox=new JCheckBox();
imageIcon=new ImageIcon();
textArea=new JTextArea();
label[10]=new JLabel("xxxxxxxxxxxxxx");
label[10].setFont(new Font("Serif",Font.PLAIN,36));
this.add(label[10]);
label[0]=new JLabel("a");
label[1]=new JLabel("b");
label[2]=new JLabel("c");
label[3]=new JLabel("d");
label[4]=new JLabel("e");
label[5]=new JLabel("f");
label[6]=new JLabel("g");
label[7]=new JLabel("h");
label[8]=new JLabel("j");
label[9]=new JLabel("::");
String Xushu="abcdefg是英文"; // 4、 此处的分号没写不用多说
textArea.setText(Xushu);
imageIcon=new ImageIcon("images\\XueDao.jpg");
checkBox=new JCheckBox(imageIcon);
this.setLayout(new GridLayout(7,3));
/*panel1.add(label[0]);
panel1.add(textArea);
panel1.add(checkBox);
panel1.add(label[1]);
panel1.add(label[9]);
panel1.add(label[7]);
panel1.add(label[2]);
panel1.add(label[9]);
panel1.add(label[7]);
panel1.add(label[3]);
panel1.add(label[9]);
panel1.add(label[7]);
panel1.add(label[4]);
panel1.add(label[9]);
panel1.add(label[8]);
panel1.add(label[5]);
panel1.add(label[9]);
panel1.add(label[8]);
panel1.add(label[6]);
panel1.add(label[9]);
panel1.add(label[8]);*/
// 5、上面注释中所有panel1改成this,如最后一句 this.add(label[8]);因为你不能在构造函数里面实例化对象。
}
}
改了后的我的可以运行:
package tr;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.*;
import javax.swing.JFrame.*;
public class XueDaoFrame1 extends JPanel{public static void main(String[] args) {
JFrame frame1=new JFrame();
XueDaoFrame1 XDframe1=new XueDaoFrame1();
frame1.getContentPane().add(XDframe1);
// frame1.setVisible(true);
frame1.setSize(700,700);
JScrollPane scrollPane=new JScrollPane(XDframe1);
frame1.getContentPane().add(scrollPane,BorderLayout.CENTER);
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
/* frame1.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});*/
frame1.setVisible(true);
}
private JLabel label[] ;
private JCheckBox checkBox;
private ImageIcon imageIcon;
private JTextArea textArea;
private JPanel panel1;
public XueDaoFrame1(){
super();
this.setLayout(new GridLayout(8,3));
label=new JLabel[20];
checkBox=new JCheckBox();
imageIcon=new ImageIcon();
textArea=new JTextArea();
label[10]=new JLabel("xxxxxxxxxxxxxx");
label[10].setFont(new Font("Serif",Font.PLAIN,36));
this.add(label[10]);
label[0]=new JLabel("a");
label[1]=new JLabel("b");
label[2]=new JLabel("c");
label[3]=new JLabel("d");
label[4]=new JLabel("e");
label[5]=new JLabel("f");
label[6]=new JLabel("g");
label[7]=new JLabel("h");
label[8]=new JLabel("j");
label[9]=new JLabel("::");
String Xushu="abcdefg是英文";
textArea.setText(Xushu);
imageIcon=new ImageIcon("images\\XueDao.jpg");
checkBox=new JCheckBox(imageIcon);
this.setLayout(new GridLayout(7,3));
this.add(label[0]);
this.add(textArea);
this.add(checkBox);
this.add(label[1]);
this.add(label[9]);
this.add(label[7]);
this.add(label[2]);
this.add(label[9]);
this.add(label[7]);
this.add(label[3]);
this.add(label[9]);
this.add(label[7]);
this.add(label[4]);
this.add(label[9]);
this.add(label[8]);
this.add(label[5]);
this.add(label[9]);
this.add(label[8]);
this.add(label[6]);
this.add(label[9]);
this.add(label[8]);
}
}
运行结果如下: