当前位置: 代码迷 >> J2SE >> 新手,问下简单计算机面板的有关问题。
  详细解决方案

新手,问下简单计算机面板的有关问题。

热度:45   发布时间:2016-04-23 20:13:36.0
新手,问下简单计算机面板的问题。。
package sample;

import javax.swing.*;

import java.awt.*;
import java.awt.event.*;
@SuppressWarnings({ "serial", "unused" })
class Jsj extends JFrame{
private JTextField a;
private JButton an[];
Jsj(){
setTitle("计算机");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
a= new JTextField();
setLayout(new BorderLayout());
JPanel pane1=new JPanel();
JPanel pane2=new JPanel();
a.setEditable(false);
pane2.add(a);
add(pane2,BorderLayout.NORTH);
pane1.setLayout(new GridLayout(5,4,3,3));
an[0]=new JButton("←");
an[1]=new JButton("CE");
an[2]=new JButton("C");
an[3]=new JButton("sqrt");
an[4]=new JButton("7");
an[5]=new JButton("8");
an[6]=new JButton("9");
an[7]=new JButton("/");
an[8]=new JButton("4");
an[9]=new JButton("5");
an[10]=new JButton("6");
an[11]=new JButton("*");
an[12]=new JButton("1");
an[13]=new JButton("2");
an[14]=new JButton("3");
an[15]=new JButton("-");
an[16]=new JButton("0");
an[17]=new JButton(".");
an[18]=new JButton("=");
an[19]=new JButton("+");
for(int i=0;i<20;i++)
pane1.add(an[i]);
add(pane1,BorderLayout.CENTER);


}

}

public class Jisuanji {

public static void main(String[] args) {
// TODO Auto-generated method stub
Jsj frm=new Jsj();
frm.setVisible(true);

}

}



这是我写的简单的面板。。。
可是运行的时候总是报错:Exception in thread "main" java.lang.NullPointerException
at sample.Jsj.<init>(Jisuanji.java:22)
at sample.Jisuanji.main(Jisuanji.java:55)
哪位大神告知下原因
------解决思路----------------------
数组声明时没有指定长度,然后下面又直接用了

private JButton an[]

改为
private JButton an[]=new JButton[20];
  相关解决方案