ActionListener numberListener = new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == bNumber[0])
{
if(opr_Trag == true)
{
opr_Trag = false;
SBuffer = jtText.getText();
}
if(pot_Trag == true)
jtText.setText(jtText.getText()+String.valueOf(0));
jtText.setText((jtText.getText()).substring((jtText.getText()).length() - 1)+String.valueOf(0.));

else if(e.getSource() == bNumber[1])
{
if(opr_Trag == true)
{
opr_Trag = false;
SBuffer = jtText.getText();
}
if(pot_Trag == true)
jtText.setText(jtText.getText()+String.valueOf(1));
jtText.setText((jtText.getText()).substring((jtText.getText()).length() - 1)+String.valueOf(1.));

else if(e.getSource() == bNumber[2])
{
if(opr_Trag == true)
{
opr_Trag = false;
SBuffer = jtText.getText();
}
if(pot_Trag == true)
jtText.setText(jtText.getText()+String.valueOf(2));
jtText.setText((jtText.getText()).substring((jtText.getText()).length() - 1)+String.valueOf(2.));
}
else if(e.getSource() == bNumber[3])
{
if(opr_Trag == true)
{
opr_Trag = false;
SBuffer = jtText.getText();
}
if(pot_Trag == true)
jtText.setText(jtText.getText()+String.valueOf(3));
jtText.setText((jtText.getText()).substring((jtText.getText()).length() - 1)+String.valueOf(3.));
}
else if(e.getSource() == bNumber[4])
{
if(opr_Trag == true)
{
opr_Trag = false;
SBuffer = jtText.getText();
}
if(pot_Trag == true)
jtText.setText(jtText.getText()+String.valueOf(4));
jtText.setText((jtText.getText()).substring((jtText.getText()).length() - 1)+String.valueOf(4.));
}
else if(e.getSource() == bNumber[5])
{
if(opr_Trag == true)
{
opr_Trag = false;
SBuffer = jtText.getText();
}
if(pot_Trag == true)
jtText.setText(jtText.getText()+String.valueOf(5));
jtText.setText((jtText.getText()).substring((jtText.getText()).length() - 1)+String.valueOf(5.));
}
else if(e.getSource() == bNumber[6])
{
if(opr_Trag == true)
{
opr_Trag = false;
SBuffer = jtText.getText();
}
if(pot_Trag == true)
jtText.setText(jtText.getText()+String.valueOf(6));
jtText.setText((jtText.getText()).substring((jtText.getText()).length() - 1)+String.valueOf(6.));
}
else if(e.getSource() == bNumber[7])
{
if(opr_Trag == true)
{
opr_Trag = false;
SBuffer = jtText.getText();
}
if(pot_Trag == true)
jtText.setText(jtText.getText()+String.valueOf(7));
jtText.setText((jtText.getText()).substring((jtText.getText()).length() - 1)+String.valueOf(7.));
}
else if(e.getSource() == bNumber[8])
{
if(opr_Trag == true)
{
opr_Trag = false;
SBuffer = jtText.getText();
}
if(pot_Trag == true)
jtText.setText(jtText.getText()+String.valueOf(8));
jtText.setText((jtText.getText()).substring((jtText.getText()).length() - 1)+String.valueOf(8.));
}
else if(e.getSource() == bNumber[9])
{
if(opr_Trag == true)
{
opr_Trag = false;
SBuffer = jtText.getText();
}
if(pot_Trag == true)
jtText.setText(jtText.getText()+String.valueOf(9));
jtText.setText((jtText.getText()).substring((jtText.getText()).length() - 1)+String.valueOf(9.));
}
else if(e.getSource() == bPnt) pot_Trag = true;
}
}; ActionListener commandListener = new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == bAdd) {cOpr = '+'; opr_Trag = true;}
else if(e.getSource() == bSub) {cOpr = '-'; opr_Trag = true;}
else if(e.getSource() == bMul) {cOpr = '*'; opr_Trag = true;}
else if(e.getSource() == bDiv) {cOpr = '/'; opr_Trag = true;}

}
}; ActionListener functionListener = new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == bSin)
{
dResult = Math.sin(Double.parseDouble(jtText.getText()));
jtText.setText(String.valueOf(dResult));
}
if(e.getSource() == bCos)
{
dResult = Math.cos(Double.parseDouble(jtText.getText()));
jtText.setText(String.valueOf(dResult));
}
if(e.getSource() == bTan)
{
dResult = Math.tan(Double.parseDouble(jtText.getText()));
jtText.setText(String.valueOf(dResult));
}
if(e.getSource() == bSqu)
{
dResult = Math.sqrt(Double.parseDouble(jtText.getText()));
jtText.setText(String.valueOf(dResult));
}
if(e.getSource() == bCub)
{
dResult = Math.sqrt(Double.parseDouble(jtText.getText()))
  * Double.parseDouble(jtText.getText());
jtText.setText(String.valueOf(dResult));
}
if(e.getSource() == bPi)
{
jtText.setText("3.14159265358979");
}
}
}; ActionListener operationListener = new ActionListener()
{
public void actionPerformed(ActionEvent e)
{

}
};
}----------

解决方案 »

  1.   

    这个是在dos中用appletviewer查看是出现的异常:-----------
    java.lang.NullPointerException
            at Calculate.init(calculate.java:35)
            at sun.applet.AppletPanel.run(AppletPanel.java:353)
            at java.lang.Thread.run(Thread.java:534)
    -----------
    不知何故,请各位大哥大姐叔叔阿姨给偶解释一下,谢谢。
      

  2.   

    你得IE浏览器不支持swing包里的类,到SUN网站下个新的java运行环境,也就是jre.exe之类的文件,要最新的最好.
      

  3.   

    我用的java运行环境是j2sdk-1_4_2-windows-i586,ie的版本是6.0,还不行吗?
      

  4.   

    和你的ie有关,你的ie有没有下载java的环境(jvm)?如果没有就到sun的站点上下一个!
    要不你就重装你的浏览器!ie5或者ie5.5都可以。
      

  5.   

    private Button bSin , bCos , bTan , bSqu , bCub , bPi;
    private Button bAdd , bSub , bMul , bDiv , bPnt , bEql;
    private Button bCE , bBackSpace;
    这里是14个Button ,你只创建了12个
    bSin = new Button("sin"); bCos = new Button("cos");
    bTan = new Button("tan"); bSqu = new Button("x^2");
    bCub = new Button("x^3"); bPi  = new Button("PI"); bAdd = new Button("+"); bSub = new Button("-");
    bMul = new Button("*"); bDiv = new Button("/"); bPnt = new Button("."); bEql = new Button("=");
      

  6.   

    两处错误都在init()方法中,
    一是Button数组 bNumber[],没有声明数组大小,应该加入下面这句
     Button bNumber[] = new Button[10];
    二是有两个 Button对象 bCE 和 bBackSpace没有实例化为对象,应该加入下面两句:
     bCE = new Button("CE");
     bBackSpace = new Button("SPACE");所以你的程序里的 init()方法应该如下,其他部分不用改变,可以编译并浏览public void init()
    {
    // 初始化面板
    PFrame = new Panel();
    PNumber = new Panel(); // 数字面板
    PFunction = new Panel(); // 函数面板
    POperation = new Panel(); // 运算符面板
    // 初始化按钮
        
        //修改部分:
        Button  bNumber[] = new Button[10];
        
    for(int i = 0 ; i <=9 ; i++)
    bNumber[i] = new Button(String.valueOf(i)); bSin = new Button("sin"); bCos = new Button("cos");
    bTan = new Button("tan"); bSqu = new Button("x^2");
    bCub = new Button("x^3"); bPi  = new Button("PI"); bAdd = new Button("+"); bSub = new Button("-");
    bMul = new Button("*"); bDiv = new Button("/"); bPnt = new Button("."); bEql = new Button("=");

    //修改部分:
     bCE = new Button("CE");
                       bBackSpace = new Button("SPACE");          //数字面板
    PNumber.setLayout(new GridLayout(4 , 3 , 10 , 8));
    PNumber.add(bNumber[7]); PNumber.add(bNumber[8]); PNumber.add(bNumber[9]);
    PNumber.add(bNumber[4]); PNumber.add(bNumber[5]); PNumber.add(bNumber[6]);
    PNumber.add(bNumber[1]); PNumber.add(bNumber[2]); PNumber.add(bNumber[3]);
    PNumber.add(bNumber[0]); PNumber.add(bPnt); PNumber.add(bEql); for(int i = 0 ; i <=9 ; i++)
    bNumber[i].addActionListener(numberListener);
    bPnt.addActionListener(numberListener); bEql.addActionListener(operationListener);
    //运算符面板
    POperation.setLayout(new GridLayout(4 , 1 , 10 , 8));
    POperation.add(bDiv); POperation.add(bMul);
    POperation.add(bSub); POperation.add(bAdd); bDiv.addActionListener(commandListener); bMul.addActionListener(commandListener);
    bSub.addActionListener(commandListener); bAdd.addActionListener(commandListener);
    //函数面板
    PFunction.setLayout(new GridLayout(4 , 2 , 10 , 8));
    PFunction.add(bBackSpace); PFunction.add(bCE);
    PFunction.add(bSin); PFunction.add(bCos);
    PFunction.add(bTan); PFunction.add(bSqu);
    PFunction.add(bCub); PFunction.add(bPi); bBackSpace.addActionListener(operationListener); bCE.addActionListener(operationListener);
    bSin.addActionListener(functionListener); bCos.addActionListener(functionListener);
    bTan.addActionListener(functionListener); bSqu.addActionListener(functionListener);
    bCub.addActionListener(functionListener); bPi.addActionListener(functionListener);
    //主框架
    jtText = new JTextField("0." , 65);
    jtText.setHorizontalAlignment(JTextField.RIGHT);
    jtText.setEditable(false);
    // setSize(200 , 170);
    PFrame.setLayout(new BorderLayout());
    PFrame.add(jtText , BorderLayout.NORTH);
    PFrame.add(PNumber , BorderLayout.WEST);
    PFrame.add(POperation , BorderLayout.CENTER);
    PFrame.add(PFunction , BorderLayout.EAST);
    add(PFrame);
    }