关于java简单计算器代码问题,新手求救

import java.awt.*;import java.awt.event.*;public class lvhaiya{ int tmp,sum,sum1,sum2=1,sum3=1;String a,b,c,d;String s="";Frame f=new Frame("计算器");private String[]name={ "0","1","2","3","4","5","6","7","8","9","+","-","*","/","=","...
关于java简单计算器代码问题,新手求救
import java.awt.*;
import java.awt.event.*;
public class lvhaiya{
int tmp,sum,sum1,sum2=1,sum3=1;
String a,b,c,d;String s="";
Frame f=new Frame("计算器");
private String[]name={
"0","1","2","3","4","5","6","7","8","9","+","-","*","/","=","空格"
};
public Button[] button=new Button[name.length];
TextField t=new TextField("",30);
Panel p=new Panel();
Panel p1=new Panel();
Color color=new Color(100,170,90);
public lvhaiya(){
p1.setLayout(new GridLayout(5,5));
for(int i=0;i<name.length;i++){
button[i]=new Button(name[i]);
p1.add(button[i]);
}
p.setLayout(new FlowLayout(FlowLayout.LEFT));
p.setBackground(color);
p.add(t);
f.add(p,BorderLayout.NORTH);
f.add(p1,BorderLayout.SOUTH);
f.pack();
f.setVisible(true);
f.addWindowListener( new WindowClose());
t.setText("0.");
for(int i=0;i<name.length;i++){
button[i].addActionListener(new ButtonEventl());
}

}
public static void main(String[]args){
lvhaiya c=new lvhaiya();
}
class WindowClose extends WindowAdapter{
public void windouClosing(WindowEvent e){
System.exit(0);

}
}
class ButtonEventl implements ActionListener{
public void actionPerformed(ActionEvent e)throws ArithmeticException{
String command=e.getActionCommand();

if(command.equals("+")){
sum=Integer.parseInt(t.getText())+sum;
t.setText(String.valueOf(sum));
a=t.getText();
s="";
}
else if(command.equals("-")){
sum1=Integer.parseInt(t.getText());
b=t.getText();
s="";
}
else if(command.equals("*")){
sum2=Integer.parseInt(t.getText())*sum2;
t.setText(String.valueOf(sum2));
c=t.getText();
s="";
}
else if(command.equals("/")){
sum3=Integer.parseInt(t.getText());
d=t.getText();
s="";
}
else if(command.equals("=")){
if(a!=null){
t.setText(String.valueOf(sum+tmp));
}
if(b!=null){
t.setText(String.valueOf(sum1-tmp));

}
if(c!=null){
t.setText(String.valueOf(sum2*tmp));
}
try{
if(d!=null){
t.setText(String.valueOf(sum3/tmp));
}
}
catch(ArithmeticException a){
t.setText("除数不能为零");
}
}
else if(command.equals("空格")){
sum=0;
a=null;
b=null;
c=null;
d=null;
sum1=0;
sum2=1;
sum3=1;
tmp=0;
t.setText("0");
s="";
}
else{
s=s+command;
t.setText(s);
tmp=Integer.parseInt(s);
}

}
}
}2011-11-23
好长的代码2011-11-22
mengvlog 阅读 11 次 更新于 2025-07-20 06:31:33 我来答关注问题0
  •  翡希信息咨询 java写计算器的问题为什么一定要这段代码,双精度浮点数的运算?后面的一段代码为什么会有try catch?

    trycatch语句的存在:原因:在计算器程序中,用户输入的可能是数字字符串,需要将这些字符串转换为double类型进行数值运算。Double.valueOf方法用于将字符串转换为double类型,但如果字符串中包含非数字字符,该方法会抛出NumberFormatException异常。作用:trycatch语句用于捕获并处理这种可能的异常,以防止程序因为...

  •  百度网友6f87babd4 java中写了一个简单计算器,计算0.3*3=0.8999...,有人说要用BigDecimal 类请问要怎么使用最好写一下代码

    代码如下:double d = 0.3;BigDecimal bd = new BigDecimal(d+"");BigDecimal bd2 = new BigDecimal(3);System.out.println(bd.multiply(bd2));--- 需要注意的是, BigDecimal bd = new BigDecimal(d+"");构造函数要传String类型,如果传double类型的话,结果也是0.8999......

  •  李义劳光济 JAVA计算器问题

    1、按小数来处理 把输入的a/b类型的数当字符串处理,分别获a b两数,然后相除得到小数,然后再计算,然后将小数转化为分数。可以保留两个分数的分母,计算出最小公倍数,然后处为最后将小数转化为分数的分母。只是这样结果不太精确。2、按分数来计算 输入的a/b类型的数还是按字符来处理,先找出分母...

  •  ALEO_JAVA Java 编程问题 我做的科学计算器,但是那个"M+","M-","MR","MC"这几个键我不会弄,下面是代码,求帮助。。

    MR意思是读取缓冲区中的数字并显示,也就是说当按下MR时,将全局变量a的值设置到你计算器的文本框中;MC则是清除缓存区中的数字,也就是将a重新赋值为0。

  • Frame fm = new Frame("简单计算器");for (int i = 0; i

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部