APPLET计算器程序 C 键不起作用 (偶不懂JAVA,别人让帮忙看,麻烦大家弄一下)

zhilongquan 2008-06-11 10:09:01

计算器 的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);
}
}
...全文
268 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhilongquan 2008-06-12
  • 打赏
  • 举报
回复
上面的都有问题,点了 C键 是清空了 文本,但是 没清空内部的数据啊,不能进行第二次运算

麻烦谁能继续帮忙解决这个问题?

可以追加分给你
duzhonghua 2008-06-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 amethystic 的回复:]
最简单的办法是这样:
if(s.equals("c"))
{
sum = 0;
text.setText("");
op = "+"; //恢复操作符
}


另外强烈建议lz用equal方法来比较字符串
[/Quote]
Sou2012 2008-06-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 laorer 的回复:]
if(s=="c")
{
sum = 0;
text.setText("");
}
[/Quote]
amethystic 2008-06-12
  • 打赏
  • 举报
回复
最简单的办法是这样:
if(s.equals("c"))
{
sum = 0;
text.setText("");
op = "+"; //恢复操作符
}


另外强烈建议lz用equal方法来比较字符串
youzi530 2008-06-11
  • 打赏
  • 举报
回复
将变量初始化!
jing61281125 2008-06-11
  • 打赏
  • 举报
回复
mark
youzy 2008-06-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 laorer 的回复:]
if(s=="c")
{
sum = 0;
text.setText("");
}
[/Quote]
J_Factory 2008-06-11
  • 打赏
  • 举报
回复
//读取一行字符串,判定各个字符出现的次数。并按出现次数由大到小排序。
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);
}
}
laorer 2008-06-11
  • 打赏
  • 举报
回复
if(s=="c")
{
sum = 0;
text.setText("");

}
laorer 2008-06-11
  • 打赏
  • 举报
回复
if(s=="c")
{
sum = 0;
}

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧