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)
主函数到底出什么问题啦?谢谢!
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)
主函数到底出什么问题啦?谢谢!
解决方案 »
- 有段代码想了好久都不懂.请各位帮忙一下
- java中循环执行WebBrowser.Navigate方法,怎样实现加载一个网页结束后再开始加载下一个
- 求救:出现can't access url 错误!
- 把一个字符串中所有的"\"都替换成"/" 该怎么解决?
- 反编译之后出现goto 以及e;,怎样变成可重新编译的代码?
- 怎样实现插件技术?
- 关于Unihan Database汉字解码问题,一个汉字对应三个编码,如何利用编码反编码汉字回来呢?
- final不是不能重栽吗?
- 欢迎大家讨论一下程序员的发展轨迹
- 圆弧与直线段相交的几何问题
- 如何测试一种软件在windows系统下的兼容性?
- 主线程和子线程的调用顺序?
Debug模式调试,不难找到错误
以下是构造函数跟主类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();
}
}
at java.awt.Container.add<Unknown Source>
at Calculator.<init><Call.java:32>
at Call.main<Call.java:434>
这是错误提示