Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Container.java:1019)
at java.awt.Container.add(Container.java:351)
at Calculator.Calculator.<init>(Calculator.java:32)
at Calculator.Calculator.main(Calculator.java:431)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:86)
主函数到底出什么问题啦?谢谢!

解决方案 »

  1.   

    用的是intellij
    Debug模式调试,不难找到错误
      

  2.   

    AppMain.java:86 这个程序86行
      

  3.   

    我的错误是Exception in thread "main" java.lang.NullPointerException 
    以下是构造函数跟主类import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.lang.*;
    class Calculator extends JFrame implements ActionListener,KeyListener,ItemListener
    {   JButton buttonadd,buttonsubtract,buttonmultiply,buttondivide,buttonclear,buttonequal,buttonperiod;
        JPanel p_north,p_center,p_center_1,p_center_2,p_north_1,p_north_2;
        JTextField text;JRadioButton hex,oct,dec,bin;JButton b[]=new JButton[10];
        ButtonGroup conversion;
        String temp_s=null;//用来临时存放的text上的字符串
        double temp_i=0;//用临时存放的由text上得到的数值
        int key=-1;//记录上一步用了哪个数值运算 0:加法;1:减法;2:乘法;3:除法
        Boolean haveperiod=false;//用来判断是否按过小数点
        Calculator()
         {  super("Calculator");setBounds(100,100,300,300);setVisible(true);
             Container con=getContentPane();JButton b[]=new JButton[10];
             buttonadd=new JButton("+");buttonsubtract=new JButton("-");
             buttonmultiply=new JButton("*");buttondivide=new JButton("/");buttonequal=new JButton("=");
             buttonclear=new JButton("Clear");buttonperiod=new JButton(".");conversion=new ButtonGroup();
             p_north=new JPanel(new GridLayout(2,1));p_center=new JPanel(new GridLayout(1,2));
             p_center_1=new JPanel(new GridLayout(4,3));p_center_2=new JPanel(new GridLayout(3,3));
             p_north_1=new JPanel();p_north_2=new JPanel();
             text=new JTextField("0.",20);text.setHorizontalAlignment(JTextField.RIGHT);
             hex=new JRadioButton("Hex");dec=new JRadioButton("Dec");bin=new JRadioButton("Bin");
             conversion.add(hex);conversion.add(oct);conversion.add(dec);conversion.add(bin);
             p_north_1.add(text);p_north_2.add(hex);p_north_2.add(oct);p_north_2.add(dec);p_north_2.add(bin);
             for(int i=0;i<=9;i++)
                {b[i]=new JButton(""+i);
                 b[i].addActionListener(this);
                 b[i].addKeyListener(this);
                 p_center_1.add(b[i]);
                 }
             hex.addItemListener(this);oct.addItemListener(this);dec.addItemListener(this);
             bin.addItemListener(this);
             buttonadd.addActionListener(this);buttonadd.addKeyListener(this);
             buttonsubtract.addActionListener(this);buttonsubtract.addKeyListener(this);
             buttonmultiply.addActionListener(this);buttonmultiply.addKeyListener(this);
             buttondivide.addActionListener(this);buttondivide.addKeyListener(this);
             buttonequal.addActionListener(this);buttonequal.addKeyListener(this);
             buttonperiod.addActionListener(this);buttonperiod.addKeyListener(this);
             p_center_1.add(buttonperiod);p_center_1.add(buttonequal);p_center_2.add(buttonadd);
             p_center_2.add(buttonsubtract); p_center_2.add(buttonmultiply); p_center_2.add(buttondivide);
             p_center_2.add(buttonclear);p_north.add(p_north_1);p_north.add(p_north_2);p_center.add(p_center_1);
             p_center.add(p_center_2);con.add(p_north,BorderLayout.NORTH);con.add(p_center,BorderLayout.CENTER);
             addWindowListener(new WindowAdapter()
                {public void windowClosing(WindowEvent eve)
                   {System.exit(0);}
                });
             pack();validate();
         }public class Call
    {   public static void main(String args[])
         {Calculator cal=new Calculator();cal.pack();
          }
    }
      

  4.   

    at java.awt.Container.addImpl<Unknown Source> 
    at java.awt.Container.add<Unknown Source> 
    at Calculator.<init><Call.java:32> 
    at Call.main<Call.java:434> 
    这是错误提示
      

  5.   

    空指针错误 debug喽 用开发工具的debug模式debug