编写了个java 界面。虽然都还没监听,但是 图形界面就是运行不出来 swing

2025-01-05 10:51:49
推荐回答(1个)
回答1:

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]);

    }


 

运行结果如下: