计算器 的C键(清楚上一次运算的功能,)不能用,无法算第二遍。我没学过JAVA,跑到这里麻烦大家一下。谢谢了import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class jisuanqi extends Applet implements ActionListener
{
public Label text1;
public TextField text;
public Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17;
public Panel panel1,panel2,panel3,panel4;
double sum=0;
String op="+";
boolean start=true;
public void init()
{
text=new TextField("");
b1=new Button("1");b2=new Button("2");b3=new Button("3");b4=new Button("4");
b5=new Button("5");b6=new Button("6");b7=new Button("7");b8=new Button("8");
b9=new Button("9");b10=new Button("0");b11=new Button(".");
b12=new Button("+");b13=new Button("-");b14=new Button("*");
b15=new Button("/");b16=new Button("=");b17=new Button("c");
panel1=new Panel(new GridLayout(1,4,10,10));
panel2=new Panel(new GridLayout(1,4,10,10));
panel3=new Panel(new GridLayout(1,4,10,10));
panel4=new Panel(new GridLayout(1,4,10,10));
text1=new Label("JAVA 计算器程序 * 这是课本274页4.4题");
text1.setAlignment(2); setLayout(new GridLayout(7,1,10,10));
panel1.add(b7);panel1.add(b8);panel1.add(b9);panel1.add(b15);
panel2.add(b4);panel2.add(b5);panel2.add(b6);panel2.add(b14);
panel3.add(b1);panel3.add(b2);panel3.add(b3);panel3.add(b13);
panel4.add(b10);panel4.add(b11);panel4.add(b16);panel4.add(b12);
add(text);add(b17);add(panel1);add(panel2);add(panel3);add(panel4); add(text1);
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);
}
public void actionPerformed(ActionEvent e)
{
String s=e.getActionCommand();
if('0'<=s.charAt(0)&&s.charAt(0)<='9'||s.charAt(0)=='.')
{ if(start) {text.setText(s); start=false;}
else text.setText(text.getText()+s);
}
else
{
if(s=="c")
{
}
else
{
calculate(new Double(text.getText()).doubleValue());
op=s;
start=true;
}
}
}
public void calculate(double n)
{
if(op=="+") sum=sum+n;
if(op=="-") sum=sum-n;
if(op=="*") sum=sum*n;
if(op=="/") sum=sum/n;
if(op=="=") sum=sum+0;
text.setText(""+sum);
}
}
{
sum = 0;
}
{
sum = 0;
text.setText("");
}
import java.util.*;
import java.io.*;
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class jisuanqi extends Applet implements ActionListener
{
/**
*
*/
private static final long serialVersionUID = 1L;
public Label text1;
public TextField text;
public Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17;
public Panel panel1,panel2,panel3,panel4;
double sum=0;
String op="+";
boolean start=true;
public void init()
{
text=new TextField("");
b1=new Button("1");b2=new Button("2");b3=new Button("3");b4=new Button("4");
b5=new Button("5");b6=new Button("6");b7=new Button("7");b8=new Button("8");
b9=new Button("9");b10=new Button("0");b11=new Button(".");
b12=new Button("+");b13=new Button("-");b14=new Button("*");
b15=new Button("/");b16=new Button("=");b17=new Button("c");
panel1=new Panel(new GridLayout(1,4,10,10));
panel2=new Panel(new GridLayout(1,4,10,10));
panel3=new Panel(new GridLayout(1,4,10,10));
panel4=new Panel(new GridLayout(1,4,10,10));
text1=new Label("JAVA 计算器程序 * 这是课本274页4.4题");
text1.setAlignment(2); setLayout(new GridLayout(7,1,10,10));
panel1.add(b7);panel1.add(b8);panel1.add(b9);panel1.add(b15);
panel2.add(b4);panel2.add(b5);panel2.add(b6);panel2.add(b14);
panel3.add(b1);panel3.add(b2);panel3.add(b3);panel3.add(b13);
panel4.add(b10);panel4.add(b11);panel4.add(b16);panel4.add(b12);
add(text);add(b17);add(panel1);add(panel2);add(panel3);add(panel4); add(text1);
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);
}
public void actionPerformed(ActionEvent e)
{
String s=e.getActionCommand();
if('0'<=s.charAt(0)&&s.charAt(0)<='9'||s.charAt(0)=='.')
{ if(start) {text.setText(s); start=false;}
else text.setText(text.getText()+s);
}
else
{
if(s=="c")
{
text.setText("");
//System.out.print("yes");
}
else
{
calculate(new Double(text.getText()).doubleValue());
op=s;
start=true;
}
}
}
public void calculate(double n)
{
if(op=="+") sum=sum+n;
if(op=="-") sum=sum-n;
if(op=="*") sum=sum*n;
if(op=="/") sum=sum/n;
if(op=="=") sum=sum+0;
text.setText(""+sum);
}
}
if(s.equals("c"))
{
sum = 0;
text.setText("");
op = "+"; //恢复操作符
}
另外强烈建议lz用equal方法来比较字符串