谁能不能把这段代码给仔细的说明一下吗?谢谢大家了!
谁能不能把这段代码给仔细的说明一下吗?谢谢大家了!
import java.awt.*;
import java.awt.event.*;
public class Calculator extends WindowAdapter implements ActionListener
{
private double result=0,data1=0,radixPointDepth=1;
private boolean radixPointIndicate=false,resultIndicate=false;
private char prec= '+ ';
private Frame f;
private TextField tf;
private Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17;
private Panel p;
static public void main(String args[])
{
Calculator de=new Calculator();
de.go();
}
public void go()
{
f=new Frame( "计算器 ");
p=new Panel();
p.setLayout(new GridLayout(4,4));
tf=new TextField(30);
b1=new Button( "7 ");
b2=new Button( "8 ");
b3=new Button( "9 ");
b4=new Button( "+ ");
b5=new Button( "4 ");
b6=new Button( "5 ");
b7=new Button( "6 ");
b8=new Button( "- ");
b9=new Button( "1 ");
b10=new Button( "2 ");
b11=new Button( "3 ");
b12=new Button( "* ");
b13=new Button( "0 ");
b14=new Button( ". ");
b15=new Button( "= ");
b16=new Button( "/ ");
b17=new Button( "清零 ");
f.add(tf, "North ");
f.add(p, "Center ");
f.add(b17, "South ");
p.add(b1);
p.add(b2);
p.add(b3);
p.add(b4);
p.add(b5);
p.add(b6);
p.add(b7);
p.add(b8);
p.add(b9);
p.add(b10);
p.add(b11);
p.add(b12);
p.add(b13);
p.add(b14);
p.add(b15);
p.add(b16);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
b9.addActionListener(this);
b10.addActionListener(this);
b11.addActionListener(this);
b12.addActionListener(this);
b13.addActionListener(this);
b14.addActionListener(this);
b15.addActionListener(this);
b16.addActionListener(this);
b17.addActionListener(this);
f.addWindowListener(this);
f.setSize(250,190);
f.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
String s;
s=e.getActionCommand();
switch(s.charAt(0))
{
case '0 ': case '1 ': case '2 ': case '3 ': case '4 ': case '5 ': case '6 ': case '7 ': case '8 ': case '9 ':
if(resultIndicate)
{
result=0;
data1=0;
prec= '+ ';
}
Integer Int1=new Integer(s);
if(radixPointIndicate)
{
radixPointDepth=radixPointDepth/10;
data1=data1+(Int1.intValue())*radixPointDepth;
}
else
{
data1=data1*10+(Int1.intValue());
}
Double displayNumber=new Double(data1);
tf.setText(displayNumber.toString());
resultIndicate=false;
break;
case '+ ': case '- ':case '* ':case '/ ':case '= ':