import javax.swing.*;
import java.awt.*;
public class firstFace extends JFrame
{
JTabbedPane pane;
JButton btn_kehu,btn_shangpin,btn_gongyingshang;
JPanel panel_jiben,panel_jinhuo,panel_xiaoshou;
public static JDesktopPane desktopPane;
    public firstFace()
    {
     super("进销存管理系统");
     this.setLayout(new BorderLayout());
     btn_kehu=new JButton("客户基本信息");
     btn_shangpin=new JButton("商品基本信息");
     btn_gongyingshang=new JButton("供应商基本信息");
     panel_jiben=new JPanel();
     panel_jinhuo=new JPanel();
     panel_jiben.setLayout(null);
     pane=new JTabbedPane();
     btn_kehu.setBounds(10,2,150,25);
     btn_shangpin.setBounds(170,2,150,25);
     btn_gongyingshang.setBounds(330,2,150,25);
     panel_jiben.setBackground(new Color(255,255,180));
     panel_jiben.add(btn_kehu);
     panel_jiben.add(btn_shangpin);
     panel_jiben.add(btn_gongyingshang);
     pane.addTab("基本信息管理",null,panel_jiben,"基本信息管理");
     pane.addTab(" 进 货 管 理",null,panel_jinhuo,"进货管理");
     this.add(pane,BorderLayout.NORTH);
     this.add(firstFace.desktopPane,BorderLayout.CENTER);//加上这句就出问题
     this.setSize(800,600);
     this.setVisible(true);
    }
    public static void main (String[] args) {
     new firstFace();
}
    
    
}
/////////////////
老师布置的界面设计作业题,可能我静态变量的概念不是很清楚,请老手看看问题出在哪里,谢谢!

解决方案 »

  1.   

    static 是在内存中只初始化一次,一旦初始化了,它就一直存在内存中,直到程序结束。
      

  2.   

    desktopPane没有初始化,默认为null,add 一个null肯定报错啊,添加以前初始化一下就行了
      

  3.   

    哈哈,这些天在用java做东西,反正当是学把你的程序改了一下,在我机子上是可以运行。我也没学多久,我看能运行了也就将就了。静态变量记得要初始化一下,你程序里面用之前就一直没初始化的
    import javax.swing.*;import java.awt.*;public class firstFa extends JFrame {
    JTabbedPane pane;
    JButton btn_kehu, btn_shangpin, btn_gongyingshang;
    JPanel panel_jiben, panel_jinhuo, panel_xiaoshou, mainPane;
    Container main = null;
    public static JDesktopPane desktopPane= new JDesktopPane();  //加了一个初始化语句 public firstFa() {
    super("进销存管理系统");
    // BorderLayout b = new BorderLayout();
    main = this.getContentPane();
    mainPane = new JPanel();
    mainPane.setLayout(new BorderLayout());

    btn_kehu = new JButton("客户基本信息");
    btn_shangpin = new JButton("商品基本信息");
    btn_gongyingshang = new JButton("供应商基本信息");

    panel_jiben = new JPanel();
    panel_jinhuo = new JPanel();

    panel_jiben.setLayout(null);

    pane = new JTabbedPane();
    btn_kehu.setBounds(10, 2, 150, 25);
    btn_shangpin.setBounds(170, 2, 150, 25);
    btn_gongyingshang.setBounds(330, 2, 150, 25);
    panel_jiben.setBackground(new Color(255, 255, 180));
    panel_jiben.add(btn_kehu);
    panel_jiben.add(btn_shangpin);
    panel_jiben.add(btn_gongyingshang);
    pane.addTab("基本信息管理", null, panel_jiben, "基本信息管理");
    pane.addTab(" 进 货 管 理", null, panel_jinhuo, "进货管理");
    mainPane.add(pane, BorderLayout.NORTH);
    mainPane.add(desktopPane, BorderLayout.CENTER);//加上这句就出问题 
    mainPane.setSize(800, 600);
    mainPane.setVisible(true);
    main.add(mainPane);
    this.setSize(500, 500);
    } public static void main(String[] args) {
    firstFa asd = new firstFa();
    asd.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    asd.show();
    }}