| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 398 人关注过本帖
标题:请教下计算器的问题
只看楼主 加入收藏
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
收藏
 问题点数:0 回复次数:2 
请教下计算器的问题

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Computer extends JFrame
{
JTextField vi;
JButton b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15;
JPanel jp;
boolean bool=true;
double result;
String s,strnum,strbut;
boolean bb1=false;boolean bb2=false;boolean bb3=false;boolean bb4=false;

public Computer()
{
Container c=getContentPane();
c.setLayout(new BorderLayout());
result=0.0;
strnum="";strbut="=";
ActionListener insert = new InsertAction();
ActionListener command = new CommandAction();

vi=new JTextField("0");
vi.setEditable(false);
vi.setHorizontalAlignment(JTextField.RIGHT);

jp=new JPanel();
jp.setLayout(new GridLayout(4,4,2,2));

b0=new JButton("0");b1=new JButton("1");b2=new JButton("2");b3=new JButton("3");
b4=new JButton("4");b5=new JButton("5");b6=new JButton("6");b7=new JButton("7");
b8=new JButton("8");b9=new JButton("9");b10=new JButton("+");b11=new JButton("-");
b12=new JButton("*");b13=new JButton("/");b14=new JButton("=");b15=new JButton("Space");

jp.add(b0);jp.add(b1);jp.add(b2);jp.add(b3);jp.add(b4);jp.add(b5);jp.add(b6);jp.add(b7);
jp.add(b8);jp.add(b9);jp.add(b10);jp.add(b11);jp.add(b12);jp.add(b13);jp.add(b14);jp.add(b15);

c.add(jp,BorderLayout.CENTER);
c.add(vi,BorderLayout.NORTH);

b0.addActionListener(insert);b1.addActionListener(insert);b2.addActionListener(insert);b3.addActionListener(insert);
b4.addActionListener(insert);b5.addActionListener(insert);b6.addActionListener(insert);b7.addActionListener(insert);
b8.addActionListener(insert);b9.addActionListener(insert);b10.addActionListener(command);b11.addActionListener(command);
b12.addActionListener(command);b13.addActionListener(command);b14.addActionListener(command);b15.addActionListener(command);

setResizable(false); //窗体不能改变大小
setLocation(400,400);
setSize(300,200);
show();

addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(1);
}
});
}
public static void main(String args[])
{
new Computer();
}
private class InsertAction implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String input = e.getActionCommand();
if(bool==true)
{
vi.setText("");
bool=false;
}
if(bool==false)
{
vi.setText(vi.getText()+input);
}
}
};
private class CommandAction implements ActionListener
{
public void actionPerformed(ActionEvent evt)
{
s=evt.getActionCommand();
if(bool==true)//二次计算
{
strbut=s;System.out.println("bool=true:"+strbut);

}
if(bool==false)
{
calculate(Double.parseDouble(vi.getText()));
strbut=s;System.out.println("bool=false:"+strbut);
bool=true;
}
if(strbut.equals("Space"))
{
vi.setText("0.0");
bool=true;
}
}
}
public void calculate(double x) {
if (strbut.equals("+")) result+= x;
else if (strbut.equals("-")) result-=x;
else if (strbut.equals("*")) {result*=x;System.out.println("result:"+result);}
else if (strbut.equals("/")) result/=x;
else if (strbut.equals("=")) result=x;
vi.setText(""+ result);
}
};
这个计算器的结果倒是出来了,可是有些地方没怎么弄清楚, 就是,乘法,除法计算的时候,为什么if (strbut.equals("*")) {result*=x;System.out.println("result:"+result);}result不是0呢?因为我是一下一下的输入,而且没有保存上次输入的数据.....请详细指教.....

搜索更多相关主题的帖子: 计算器 
2006-06-25 22:04
水影月圆
Rank: 4
等 级:贵宾
威 望:11
帖 子:738
专家分:0
注 册:2005-8-2
收藏
得分:0 
去论坛搜搜 肯定有你问的问题  请多看看版规 谢谢!!

子非鱼,安知鱼之江湖?子非我,安知我之功夫 http://20681.
2006-06-25 22:35
lw8484654
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-12-1
收藏
得分:0 
不好意思啊!!!
2006-06-26 00:15
快速回复:请教下计算器的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019588 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved