计算器代码(Java)

原创 2016年08月28日 21:12:24
package jyh;

import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import javax.swing.*;
public class helloa extends Applet implements ActionListener
{
 String x="",y="",symbol="";
 double answer;
 JTextField tfAnswer; 
 Button button[]=new Button[10];
 Button Jia,Jian,Cheng,Chu,ReStart,Pow,Sqrt,Deng,Fu,Point,sin,cos,tan,ln;
 public void init()
 {
  this.setBackground(Color.CYAN);  
  setLayout(null);
  tfAnswer=new JTextField();
  tfAnswer.setBounds(5, 5, 265, 30);
  tfAnswer.setHorizontalAlignment(JTextField.RIGHT); 
  tfAnswer.setText("0.");
  add(tfAnswer);
  SetButton(button[9],"9",95,50,40,30,Color.blue);
  SetButton(button[8],"8",50,50,40,30,Color.blue);
  SetButton(button[7],"7",5,50,40,30,Color.blue);
  SetButton(button[6],"6",95,85,40,30,Color.blue);
  SetButton(button[5],"5",50,85,40,30,Color.blue);
  SetButton(button[4],"4",5,85,40,30,Color.blue);
  SetButton(button[3],"3",95,120,40,30,Color.blue);
  SetButton(button[2],"2",50,120,40,30,Color.blue);
  SetButton(button[1],"1",5,120,40,30,Color.blue);
  SetButton(button[0],"0",5,155,40,30,Color.blue);
  SetButton(Jia,"+",140,155,40,30,Color.red);
  SetButton(Jian,"-",140,120,40,30,Color.red);
  SetButton(Cheng,"*",140,85,40,30,Color.red);
  SetButton(Chu,"/",140,50,40,30,Color.red);
  SetButton(ReStart,"ReStart",185,50,40,30,Color.red);
  SetButton(Pow,"^",185,85,40,30,Color.blue);
  SetButton(Sqrt,"sqrt",185,120,40,30,Color.blue);
  SetButton(Deng,"=",185,155,40,30,Color.red);
  SetButton(Fu,"+/-",50,155,40,30,Color.blue);
  SetButton(Point,".",95,155,40,30,Color.blue);
  SetButton(sin, "sin", 230, 50, 40, 30, Color.red);
  SetButton(cos, "cos", 230, 85, 40, 30, Color.red);
  SetButton(tan, "tan", 230, 120, 40, 30, Color.red);
  SetButton(ln, "ln", 230, 155, 40, 30, Color.red);
 }



 public void SetButton(Button name,String symbol,int x,int y,int width,int height,Color color)
 {
  setLayout(null);
  name=new Button(symbol);
  name.setBounds(x,y,width,height);
  name.setBackground(Color.white);
  name.setForeground(color);
  name.addActionListener(this);
  add(name);
 }


 public void Equal(String z)
 {
  if(z.equals("+")) 
      answer=Double.parseDouble(x)+Double.parseDouble(y);
  if(z.equals("-")) 
      answer=Double.parseDouble(x)-Double.parseDouble(y);
  if(z.equals("*")) 
      answer=Double.parseDouble(x)*Double.parseDouble(y);
  if(z.equals("/")) 
      answer=Double.parseDouble(x)/Double.parseDouble(y);
  if(z.equals("^"))
      answer=Math.pow(Double.parseDouble(x),Double.parseDouble(y));
  if(z.equals("sin"))
      answer=Math.sin(Double.parseDouble(x));
  if(z.equals("cos"))
      answer=Math.cos(Double.parseDouble(x));
  if(z.equals("tan"))
      answer=Math.tan(Double.parseDouble(x));
  if(z.equals("ln"))
      answer=Math.log(Double.parseDouble(x));
  x=Double.toString(answer);
  tfAnswer.setText(x);
  y="";symbol="";
 }

 public void actionPerformed(ActionEvent e) throws IndexOutOfBoundsException
 {
  if (
    e.getActionCommand().equals("0")||
    e.getActionCommand().equals("1")||
    e.getActionCommand().equals("2")||
    e.getActionCommand().equals("3")||
    e.getActionCommand().equals("4")||
    e.getActionCommand().equals("5")||
    e.getActionCommand().equals("6")||
    e.getActionCommand().equals("7")||
    e.getActionCommand().equals("8")||
    e.getActionCommand().equals("9")
    )
    {
         if (symbol.equals(""))
         {
             x=x+e.getActionCommand();
                 if (x.startsWith("00"))
                 {
                  x=x.substring(1);
                 }
             tfAnswer.setText(x);
         }
         else
         {
             y=y+e.getActionCommand();
                 if (y.startsWith("00"))
                 {
                  y=y.substring(1);
                 }
            tfAnswer.setText(y);
         }
    }

  if (e.getActionCommand().equals("."))
  {
   if (symbol.equals(""))
   {
    int i=0,j=0;
        for (i=0;i<x.length();i++)
        {
             if (x.charAt(i)=='.')
             {
              j++;
             }
        }
        if (j==0)
        {
         x=x+".";
        }
    tfAnswer.setText(x);
   }
   else
   {
       int i=0,j=0;
            for (i=0;i<y.length();i++)
            {
                 if (y.charAt(i)=='.')
                 {
                  j++;
                 }
            }
             if (j==0)
             {
              y=y+".";
             }
    tfAnswer.setText(y);
   }
  }

  if (e.getActionCommand().equals("ReStart"))
  {
       x="";y="";symbol="";
       tfAnswer.setText("0.");
  }  
  if (e.getActionCommand().equals("+/-"))
  {
       if (symbol.equals(""))
       {
            if(x.substring(0,1).equals("-"))
            {
             x=x.substring(1);
            }
            else
            {
             x="-"+x;
            }
            tfAnswer.setText(x);
       }
   else
   {
        if(y.substring(0,1).equals("-"))
        {
            y=y.substring(1);
        }
        else
        {
            y="-"+y;
        }

        tfAnswer.setText(y);
   }
  }

  if(e.getActionCommand().equals("sqrt"))
  {
       if(symbol!="") 
       {
           Equal(symbol);
       }
       answer=Math.sqrt(Double.parseDouble(x));
       x=Double.toString(answer);
       tfAnswer.setText(x);
  }  
  if(e.getActionCommand().equals("+"))
  {
   if(symbol!="") 
       Equal(symbol);
   symbol="+";
  }
  if(e.getActionCommand().equals("-"))
  {
   if(symbol!="") 
       Equal(symbol);
   symbol="-";
  }
  if(e.getActionCommand().equals("*"))
  {
   if(symbol!="") 
       Equal(symbol);
   symbol="*";
  }
  if(e.getActionCommand().equals("/"))
  {
   if(symbol!="") 
       Equal(symbol);
   symbol="/";
  }
  if(e.getActionCommand().equals("^"))
  {
   if(symbol!="") 
       Equal(symbol);
   symbol="^";
  }
  if(e.getActionCommand().equals("sin"))
  {
      if(symbol!="")
          Equal(symbol);
      answer=Math.sin(Double.parseDouble(x));
      x=Double.toString(answer);
      tfAnswer.setText(x);
  }
  if(e.getActionCommand().equals("ln"))
  {
      if(symbol!="")
          Equal(symbol);
      answer=Math.log(Double.parseDouble(x));
      x=Double.toString(answer);
      tfAnswer.setText(x);
  }
  if(e.getActionCommand().equals("cos"))
  {
      if(symbol!="")
          Equal(symbol);
      answer=Math.cos(Double.parseDouble(x));
      x=Double.toString(answer);
      tfAnswer.setText(x);
  }
  if(e.getActionCommand().equals("tan"))
  {
      if(symbol!="")
          Equal(symbol);
      answer=Math.tan(Double.parseDouble(x));
      x=Double.toString(answer);
      tfAnswer.setText(x);
  }
  if(e.getActionCommand().equals("=")) 
      Equal(symbol);
 }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

java实现简易计算器完整代码

早起起来没事,打开mac突然想写个小程序,就写来个简易的计算器,可以实现基本的运算,测试目前无bug,下面分享下自己的代码。 首先写了个简单的界面如下: 整个面板用了BorderLayout布局,...
  • sddchina
  • sddchina
  • 2015年03月08日 17:39
  • 33799

用java代码写的简易计算器(可以实现基本的加减乘除功能)

用java的Swing组件写的简易计算器

java实现计算器的代码

//界面实现计算器 package com.hushi.calculator; import java.awt.BorderLayout; import java.awt.GridLayou...

java代码写的图形化个人收入计算器

import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.GridLayout; import java...

java计算器实现,百行代码,清晰注释

/** * 计算器算法 * @author Lxiang * 思想: * 把一个字符串表达式,拆分成两个集合,一个集合包含计算中的数,一个集合包含计算中的符号 ...

用java写一个简单的计算器详解代码

使用java实现一个能进行整行读取并计算的简易计算器 下面计算器的界面: 以及具体的计算形式: 下面是Jisuanapp类的代码: /* * To change ...
  • lz0044
  • lz0044
  • 2017年11月05日 19:56
  • 134

计算器界面的java代码

这算是自己第一次独立完成的java程序,小小纪念一下。 以下为Cal.java的内容 import java.awt.*; import javax.swing.*; public class ...
  • asnbzo
  • asnbzo
  • 2013年12月01日 14:15
  • 590

一个一百亿的计算器的实现(java代码实现)

源地址:http://blog.csdn.net/wilsonpeng3/article/details/22441009 网上一搜一大把,搜出来的结果几乎都是我很崇敬的张孝祥老师写的这道题...

Java 实现简易计算器完整代码

最近在学习java的编程,就写了个简易的计算器,可以实现基本的运算,测试目前无bug,下面分享下自己的代码。首先界面:整个面板用了BorderLayout布局,分为北,左和中。中部采用网格布局。定义这...

Java AWT实现的计算器代码

import java.awt.*;import java.awt.event.*;import java.util.regex.Matcher;import java.util.regex.Patt...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:计算器代码(Java)
举报原因:
原因补充:

(最多只允许输入30个字)