当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:13:00  来源:本站整理

一个Java实现的计算器小程序[Java编程]

赞助商链接



  本文“一个Java实现的计算器小程序[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

/**
@author Song Liang Peng
@version 2005.7.23
*/
import java.awt.*;
import java.awt.event.*;
public class Counter extends Frame implements ActionListener
{
TextField t=new TextField("",15);
Panel p1=new Panel();
Panel p2=new Panel();
Button[] b=new Button[10];
Button bAdd=new Button("+");
Button bSub=new Button("-");
Button bMul=new Button("*");
Button bDiv=new Button("/");
Button bPoint=new Button(".");
Button bEqual=new Button("=");
Button bSqrt=new Button("开平方");
Button bNull=new Button("清空");
String str1="";   //str1和str2存放两个输入的数
String str2="";
String operator=null;  //存放加减乘除以及开平方的标记
boolean first=true;  //查验输入的能否为第一个数
int countOper=0;  //累计输入标记的个数,连加连减等操作中会用到
double result=0.0;  //暂存后果
double num1=0.0,num2=0.0; //两个输入的数做运算时转化为double存放
boolean error=false;  //查验除数能否为0
//构造办法
public Counter()
{
 super("counter");
 t.setEditable(false);
for(int i=0;i<b.length;i++)
 {
  b[i]=new Button(String.valueOf(i));
  p1.add(b[i]);
  b[i].setActionCommand("number");
  b[i].addActionListener(this);
 }
 p1.add(bPoint);
 bPoint.setActionCommand("number");
 p1.add(bAdd);   //数字键,标记键安排在panel的p1中
 p1.add(bSub);
 p1.add(bMul);
 p1.add(bDiv);
 p1.add(bEqual);
 p2.add(bSqrt);   //开平方和清空键安排在panel的p2中
 p2.add(bNull);
 bAdd.setActionCommand("oper");
 bSub.setActionCommand("oper");
 bMul.setActionCommand("oper");
 bDiv.setActionCommand("oper");
bAdd.addActionListener(this);
 bSub.addActionListener(this);
 bMul.addActionListener(this);
 bDiv.addActionListener(this);
 bPoint.addActionListener(this);
 bEqual.addActionListener(this);
 bSqrt.addActionListener(this);
 bNull.addActionListener(this);
p1.setLayout(new GridLayout(4,4,5,5));
 p2.setLayout(new FlowLayout());
 add(t,"North");   //frame的north安排输入框,panel安排在center和south
 add(p1,"Center");
 add(p2,"South");
 setLocation(400,200);
 setSize(200,200);
 setBackground(Color.red);
 setVisible(true);
addWindowListener(new WindowAdapter(){  //关闭窗口
  public void windowClosing(WindowEvent e)
  {
  System.exit(0);
  }
 });
}
//实现接口ActionListener
public void actionPerformed(ActionEvent e)
{
 Button temp=(Button)e.getSource();
if(e.getActionCommand().equals("number"))
 {
  if(first)
  {
  str1=str1+temp.getLabel();
  t.setText(str1);
  }
  else
  {
  str2=str2+temp.getLabel();
  t.setText(str2);
  }
 }
 else if(e.getActionCommand().equals("oper"))
 {
  if(str1=="")  //假如还没有输入数就点击运算符履行if,127行同理
  {
  countOper=0;
  first=true;
  }
  else
  {
  countOper++;
  if(countOper>1)
  {
   getResult();
  }
  operator=temp.getLabel();
  first=false;
  }
 }
 else if(e.getActionCommand().equals("开平方"))
 {
  if(str1=="")
  {
  countOper=0;
  first=true;
  }
  else
  {
  countOper=1;
  if(countOper>1)
  {
   getResult();
  }
  double d=Math.sqrt(Double.parseDouble(str1));
  str1=String.valueOf(d);
  t.setText(String.valueOf(d));
  first=false;
  }
 }
 else if(e.getActionCommand().equals("清空"))
 {
  str1="";
  str2="";
  t.setText("");
  countOper=0;
  first=true;
  error=false;
 }
 else if(e.getActionCommand().equals("="))
 {
  if((str1=="")||(str2==""))  //两个数没有输全就点击等号,履行if
  {
  countOper=0;
  first=true;
  }
  else
  {
  getResult();
  countOper=0;
  }
 }
}
//运算后果的办法
public void getResult()
{
 num1=Double.parseDouble(str1);
 num2=Double.parseDouble(str2);
if(operator.equals("+"))
 {
  result=num1+num2;
 }
 else if(operator.equals("-"))
 {
  result=num1-num2;
 }
 else if(operator.equals("*"))
 {
  result=num1*num2;
 }
 else if(operator.equals("/"))
 {
  if(num2==0.0)  //除数为0的处理办法
  {
  error=true;
  }
  else
  {
  result=num1/num2;
  }
 }
 if(error)
 {
  t.setText("error");
 }
 else
 {
  t.setText(String.valueOf(result));
  str1=String.valueOf(result); //运算后把后果放入str1中,str2清空,为连加连减等操作做预备
  str2="";
 }
}
//主办法
public static void main(String[] args)
{
 new Counter();
}
}


  以上是“一个Java实现的计算器小程序[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 怎样在xp下操作tomcat安置一个java web项目
  • 一个Java程序员应当掌握的10项本领技术
  • <b>我们的第一个Java程序</b>
  • 一个java类办法提取器
  • 一个JAVABean的小例子
  • dySE:一个Java搜索引擎的实现,第1部份 - 网络爬虫
  • <b>dySE:一个Java搜索引擎的实现,第2部份 网页预处理</b>
  • 成立一个Java操纵数据库的桌面操纵程序
  • 一个Java记事本的源程序
  • 一个Java实现的计算器小程序
  • 避免同一个Java操纵反复启动的shell脚本
  • 一个Java Web后台任务实施工具的筹划与实现
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .