/*本程序是用AWT组件实现的*/ import Java.awt.*; import java.awt.event.*; import java.applet.Applet;
public class jsq extends Applet implements ActionListener { int flag=0; double x; String s=new String(""); Panel p1,p2,p3; Label label; TextField text1; Button bclear,bpoint,beq,badd,bsbb,bmult,bdiv; Button[] b=new Button[10]; public void init() { p1=new Panel();p2=new Panel();p3=new Panel(); setLayout(new FlowLayout()); p1.setLayout(new FlowLayout()); p2.setLayout(new GridLayout(4,3)); p3.setLayout(new GridLayout(4,1)); label=new Label("简易计算器"); text1=new TextField(12); bclear=new Button("Clear"); add(label);
//把文本框和清空按钮加在第一个板上 p1.add(text1);p1.add(bclear); bclear.addActionListener(this);
for(int i=0;i<10;i++) { b[i]=new Button(Integer.toString(i)); }
bpoint=new Button("."); beq=new Button("=");
//把所有数字按钮和"."及"="加在第二个板上 for(int i=0;i<10;i++) { p2.add(b[i]); b[i].addActionListener(this); } p2.add(bpoint);p2.add(beq); bpoint.addActionListener(this); beq.addActionListener(this);
//把运算符号按钮加在第三个板上 badd=new Button("+"); bsbb=new Button("-"); bmult=new Button("*"); bdiv=new Button("/"); p3.add(badd); p3.add(bsbb); p3.add(bmult); p3.add(bdiv);
badd.addActionListener(this); bsbb.addActionListener(this); bmult.addActionListener(this); bdiv.addActionListener(this);
add(p1);add(p2);add(p3);add(new Label(" "));
} public void actionPerformed(ActionEvent e) {
for(int i=0;i<10;i++){ if(e.getSource()==b[i]e.getSource()==bpoint){ s=s+e.getActionCommand(); text1.setText(s); break; }
}
//判定运算符号,并作上标记 if(e.getSource()==badd){ x=Double.parseDouble(s); flag=1; text1.setText(""); s=""; } if(e.getSource()==bsbb){ x=Double.parseDouble(s); flag=2; text1.setText(""); s=""; } if(e.getSource()==bmult){ x=Double.parseDouble(s); flag=3; text1.setText(""); s=""; } if(e.getSource()==bdiv){ x=Double.parseDouble(s); flag=4; text1.setText(""); s=""; }
//清空并标志为0 if(e.getSource()==bclear){ text1.setText(""); s=""; flag=0; }
//运算 if(e.getSource()==beq){ switch(flag){ case 1: { x=Double.parseDouble(s)+x; String s=String.valueOf(x); text1.setText(s);break; }
case 2: { x=x-Double.parseDouble(s); String s=String.valueOf(x); text1.setText(s);break; } case 3: { x=Double.parseDouble(s)*x; String s=String.valueOf(x); text1.setText(s);break; } case 4: { if(Double.parseDouble(s)==0){text1.setText("除数不能为0!");break;} x=x/Double.parseDouble(s); String s=String.valueOf(x); text1.setText(s);break; } } } } }
|