`
xiang37
  • 浏览: 430689 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

计算器(原创)

阅读更多

 

import java.awt.*; 
import java.util.ArrayList; 
import java.util.Iterator; 
import java.lang.Double; 
import java.text.*; 
import java.awt.event.*; 
import javax.swing.*; 
public class CalculatorFrame extends Frame implements ActionListener 
{ 
private TextField text;//text_input; 
public boolean firstWrite = true; 
public boolean firstCalculate = true; 
public JPanel   cPanel1, cPanel2, cPanel3, cPanel4; 
private Button button_0,button_1,button_2,button_3,button_4,button_5,button_6,button_7,button_8, 
button_9,button_jia,button_jian,button_cheng,button_chu,button_cancel,button_deng; 
public CalculatorFrame() 
{ 
   JFrame jf = new JFrame("简易计算器"); 
   //super("简易计算器"); 
   cPanel1 = new JPanel(); 
   cPanel2 = new JPanel(new GridLayout(3,3)); 
   cPanel3 = new JPanel(new GridLayout(1,3)); 
   cPanel4 = new JPanel(new GridLayout(4,1)); 

   //this.setLayout(new GridLayout(1,1)); 

   text=new TextField(30); 
   text.setEditable(false); 
   text.setBackground (Color.white); 
   cPanel1.add(text); 
   //this.add(text_input); 
   //this.setLayout(new GridLayout(4,4)); 
   button_0=new Button("0"); 
   button_0.setBackground ( Color.getColor ("#000ffff") ); 
   button_1=new Button("1"); 
   button_2=new Button("2"); 
   button_3=new Button("3"); 
   button_4=new Button("4"); 
   button_5=new Button("5"); 
   button_6=new Button("6"); 
   button_7=new Button("7"); 
   button_8=new Button("8"); 
   button_9=new Button("9"); 
   button_jia=new Button("+"); 
   button_jian=new Button("-"); 
   button_cheng=new Button("*"); 
   button_chu=new Button("/"); 
   button_cancel=new Button("c"); 
   button_deng=new Button("="); 
   cPanel3.add(button_0); 
   cPanel2.add(button_1); 
   cPanel2.add(button_2); 
   cPanel2.add(button_3); 
   cPanel2.add(button_4); 
   cPanel2.add(button_5); 
   cPanel2.add(button_6); 
   cPanel2.add(button_7); 
     cPanel2.add(button_8); 
     cPanel2.add(button_9); 
     cPanel4.add(button_jia); 
     cPanel4.add(button_jian); 
     cPanel4.add(button_cheng); 
     cPanel4.add(button_chu); 
     cPanel3.add(button_cancel); 
     cPanel3.add(button_deng); 

     button_0.addActionListener(this); 
     button_1.addActionListener(this); 
     button_2.addActionListener(this); 
     button_3.addActionListener(this); 
     button_4.addActionListener(this); 
     button_5.addActionListener(this); 
     button_6.addActionListener(this); 
     button_7.addActionListener(this); 
     button_8.addActionListener(this); 
     button_9.addActionListener(this); 
     button_jia.addActionListener(this); 
     button_jian.addActionListener(this); 
     button_cheng.addActionListener(this); 
     button_chu.addActionListener(this); 
     button_cancel.addActionListener(this); 
     button_deng.addActionListener(this); 


     jf.addWindowListener(new WinClose()); 
     jf.getContentPane ().add (cPanel1, "North"); 
     jf.getContentPane ().add (cPanel2, "Center"); 
     jf.getContentPane ().add (cPanel3, "South"); 
     jf.getContentPane ().add (cPanel4, "East"); 
     cPanel1.setSize (20,40); 
     cPanel2.setSize (210,210); 
     cPanel3.setSize (70,280); 
     cPanel4.setSize (210,70); 
     jf.setSize (400,400); 
     jf.setLocation (300,300); 
     jf.setVisible (true); 
     } 
   public void result(ActionEvent e) 
   { 
     int cheng = 0; 
     int chu = 0; 
     int jia = 0; 
     int jian = 0; 
     double result=0.0; 
     String showResult = null; 
     /*---- 
     boolean one = true; 
     int whichSymbol = 1; 
     int m = saveCommand.size(); 
     for(int i= 0;i < m;i++) 
     { 
       switch(saveCommand.get(i)) 
       { 
       case '0':if(one)numFir=0;else numSec[I]=0; break; 
       case '1':if(one)numFir[I]=1;else numSec[I]=1; break; 
       case '2':if(one)numFir[I]=2;else numSec[I]=2; break; 
       case '3':if(one)numFir[I]=3;else numSec[I]=3; break; 
       case '4':if(one)numFir[I]=4;else numSec[I]=4; break; 
       case '5':if(one)numFir[I]=5;else numSec[I]=5; break; 
       case '6':if(one)numFir[I]=6;else numSec[I]=6; break; 
       case '7':if(one)numFir[I]=7;else numSec[I]=7; break; 
       case '8':if(one)numFir[I]=8;else numSec[I]=8; break; 
       case '9':if(one)numFir[I]=9;else numSec[I]=9; break; 
       case '*':whichSymbol=4; break; 
       case '/':whichSymbol=3; break; 
       case '+':whichSymbol=2; break; 
       case '-':whichSymbol=1; break; 
       default :break; 
       } 
     } 
   ---*/ 
   String commandArray = text.getText(); 
   cheng = commandArray.indexOf('*'); 
   chu = commandArray.indexOf('/'); 
     jia = commandArray.indexOf('+'); 
   jian = commandArray.indexOf('-'); 
   if(0<cheng && cheng<8) 
   { 
   double firNum = Double.parseDouble(commandArray.substring(0,cheng)); 
   double sndNum = Double.parseDouble(commandArray.substring(cheng+1)); 
   result = firNum * sndNum; 
   showResult = String.valueOf(result); 
   if(showResult.length()>6) 
     showResult.substring(0,6); 


   } 
   if(0<chu && chu<8) 
   { 
   double firNum = Double.parseDouble(commandArray.substring(0,chu)); 
   double sndNum = Double.parseDouble(commandArray.substring(chu+1)); 
   result = firNum / sndNum; 
   //result = Math.round(result); 
   DecimalFormat decimal = new DecimalFormat("#.######"); 
   //String piStr = decimal.format(pi); 
     //showResult = String.valueOf(result); 
   showResult = decimal.format(result); 
   } 
   if(0<jia && jia<8) 
   { 
   double firNum = Double.parseDouble(commandArray.substring(0,jia)); 
   double sndNum = Double.parseDouble(commandArray.substring(jia+1)); 
   result = firNum + sndNum; 
   showResult = String.valueOf(result); 
   if(showResult.length()>6) 
     showResult.substring(0,6); 
   } 
   if(0<jian && jian<8) 
   { 
   double firNum = Double.parseDouble(commandArray.substring(0,jian)); 
   double sndNum = Double.parseDouble(commandArray.substring(jian+1)); 
   result = firNum - sndNum; 
   showResult = String.valueOf(result); 
   if(showResult.length()>6) 
     showResult.substring(0,6); 
   } 
   //if(Math.abs(result)>0.0000001&&Math.abs(result)<10000000) 
   //{ 
   firstCalculate = true; 
   firstWrite = true; 
   text.setText(""+showResult); 
   //} 
     //else 
     //{ 
       //firstWrite = false; 
       //text.setText("Error"); 
     //} 
   } 
   public void actionPerformed(ActionEvent e) 
   { 
   int i=0; 
     ArrayList saveCommand=new ArrayList(); 
     if(e.getSource()==button_cancel) 
       text.setText(""); 

     if(e.getSource() == button_deng) 
     { 
     this.result(e); 
     } 
     if(e.getSource() == button_0) 
     { 
     //saveCommand.add("0"); 
     if(firstWrite) 
     { 
       text.setText(""+e.getActionCommand()); 
       firstWrite = false; 
     } 
     else 
       text.setText(text.getText()+e.getActionCommand()); 
     } 
     if(e.getSource() == button_1) 
     { 
     //saveCommand.add("1"); 
     if(firstWrite) 
     { 
       text.setText(""+e.getActionCommand()); 
       firstWrite = false; 
     } 
     else 
       text.setText(text.getText()+e.getActionCommand()); 
     } 
     if(e.getSource() == button_2) 
     { 
     //saveCommand.add("2"); 
     if(firstWrite) 
     { 
       text.setText(""+e.getActionCommand()); 
       firstWrite = false; 
     } 
     else 
       text.setText(text.getText()+e.getActionCommand()); 
     } 
     if(e.getSource() == button_3) 
     { 
     //saveCommand.add("3"); 
     if(firstWrite) 
     { 
       text.setText(""+e.getActionCommand()); 
       firstWrite = false; 
     } 
     else 
       text.setText(text.getText()+e.getActionCommand()); 
     } 
     if(e.getSource() == button_4) 
     { 
     //saveCommand.add("4"); 
     if(firstWrite) 
     { 
       text.setText(""+e.getActionCommand()); 
       firstWrite = false; 
     } 
     else 
       text.setText(text.getText()+e.getActionCommand()); 
     } 
     if(e.getSource() == button_5) 
     { 
     //saveCommand.add("5"); 
     if(firstWrite) 
     { 
       text.setText(""+e.getActionCommand()); 
       firstWrite = false; 
     } 
     else 
       text.setText(text.getText()+e.getActionCommand()); 
     } 
     if(e.getSource() == button_6) 
     { 
     //saveCommand.add("6"); 
     if(firstWrite) 
     { 
       text.setText(""+e.getActionCommand()); 
       firstWrite = false; 
     } 
     else 
       text.setText(text.getText()+e.getActionCommand()); 
     } 
     if(e.getSource() == button_7) 
     { 
     //saveCommand.add("7"); 
     if(firstWrite) 
     { 
       firstWrite = false; 
       text.setText(""+e.getActionCommand()); 
     } 
     else 
       text.setText(text.getText()+e.getActionCommand()); 
     } 
     if(e.getSource() == button_8) 
     { 
     //saveCommand.add("8"); 
     if(firstWrite) 
     { 
       firstWrite = false; 
       text.setText(""+e.getActionCommand()); 
     } 
     else 
       text.setText(text.getText()+e.getActionCommand()); 
     } 
     if(e.getSource() == button_9) 
     { 
     //saveCommand.add("9"); 
     if(firstWrite) 
     { 
       firstWrite = false; 
       text.setText(""+e.getActionCommand()); 
     } 
     else 
       text.setText(text.getText()+e.getActionCommand()); 
     } 
     if(e.getSource() == button_jia) 
     { 
     //saveCommand.add("+"); 
   if(firstCalculate) 
   { 
   text.setText(text.getText()+e.getActionCommand()); 

   } 
   else 
   { 
   this.result (e); 
   text.setText(text.getText()+e.getActionCommand()); 
   } 
   firstWrite = false; 
   firstCalculate = false; 
     } 
     if(e.getSource() == button_jian) 
     { 
     //saveCommand.add("-"); 
   if(firstCalculate) 
   { 
   text.setText(text.getText()+e.getActionCommand()); 
   } 
   else 
   { 
   this.result (e); 
   text.setText(text.getText()+e.getActionCommand()); 
   } 
   firstWrite = false; 
   firstCalculate = false; 
     } 
     if(e.getSource() == button_cheng) 
     { 
     //saveCommand.add("*"); 
   if(firstCalculate) 
   { 
   text.setText(text.getText()+e.getActionCommand()); 
   } 
   else 
   { 
   this.result (e); 
   text.setText(text.getText()+e.getActionCommand()); 
   } 
   firstWrite = false; 
   firstCalculate = false; 
     } 
     if(e.getSource() == button_chu) 
     { 
     //saveCommand.add("/"); 
   if(firstCalculate) 
   { 
   text.setText(text.getText()+e.getActionCommand()); 

   } 
   else 
   { 
   this.result (e); 
   text.setText(text.getText()+e.getActionCommand()); 
   } 
   firstWrite = false; 
   firstCalculate = false; 
     } 

   } 
   public static void main(String arg[]) 
   { 
   new CalculatorFrame(); 
   } 

class WinClose implements WindowListener 
{ 
     public void windowClosing(WindowEvent e) 
     { 
       System.exit(0); 
     } 
   public void windowOpened(WindowEvent e){} 
   public void windowActivated(WindowEvent e){} 
   public void windowDeactivated(WindowEvent e){} 
   public void windowClosed(WindowEvent e){} 
   public void windowIconified(WindowEvent e){} 
   public void windowDeiconified(WindowEvent e){} 
   } 
   };
 

 

分享到:
评论

相关推荐

    c#计算器原创

    在本项目中,"c#计算器原创"是一个基于C#编程语言实现的计算器程序。作为一款原创作品,它展示了开发者对C#基础知识的理解以及在GUI(图形用户界面)设计方面的应用。虽然描述中提到因为时间原因没有进一步完善,但...

    C# 计算器 原创作品,可键盘直接输入计算

    在本项目中,我们讨论的是一个使用C#编程语言编写的计算器程序,它是一个原创作品,支持用户通过键盘直接输入进行计算。这个计算器是为学习和交流目的设计的,可以在.NET Framework 3.5环境下运行。这个框架是微软...

    很好用的计算器 原创 可自动隐藏 可计算带常用函数的表达式 欢迎试用

    今天,让我们来了解一下一款名为“很好用的计算器”的原创软件,它不仅具备强大的计算能力,更有着独树一帜的自动隐藏窗体功能。 这款计算器软件的亮点之一是其界面的创新设计。你是否曾在使用计算器时感到桌面空间...

    计算器代码(原创)

    这篇主题是关于一个原创的计算器应用程序,主要关注的是它的实现和可能存在的问题。这个计算器软件设计简洁,旨在提供基本的计算功能,适用于Android操作系统。开发者提到已经完成了大部分功能,但同时可能存在一些...

    用vb6.0编写的计算器,原创

    标题 "用vb6.0编写的计算器,原创" 暗示了这是一个使用Visual Basic 6.0(VB6.0)开发的个人计算器项目。VB6.0是微软公司推出的一款面向对象的编程环境,它允许开发者创建Windows应用程序,包括用户界面和后台逻辑。...

    计算器软件 原创 可以计算表达式 可以自动收缩

    目前市场上的计算器软件种类繁多,功能各异,然而今天我们要介绍的是一款原创的计算器软件,它的特点在于可以处理各种数学表达式,并具有自动收缩功能。那么,让我们深入了解一下这款计算器软件的具体功能和特色。 ...

    原创android小计算器

    "原创android小计算器"项目就是一个这样的实践案例,它实现了基本的四则运算(加、减、乘、除)以及小数点运算。这个项目不仅展示了Android应用的基础构建,还涉及到了线性布局(LinearLayout)和相对布局...

    用MFC编写计算器(原创)

    在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 库来编写一个功能完备的计算器程序。MFC 是 Microsoft 提供的一个 C++ 类库,它为开发 Windows 应用程序提供了一种结构化的方法,包括用户界面...

    java实现xp系统的计算器(原创)

    java实现xp系统的计算器(原创) 功能近乎相同,界面也差不多,可以下载,任意改

    android计算器源代码【原创】

    在本资源中,我们主要探讨的是一个原创的Android计算器应用的源代码。这个计算器虽然功能相对简单,但设计时充分考虑了各种细节,因此对于学习Android开发,尤其是初学者而言,是一个很好的实例。 首先,我们要了解...

    文本计算器(原创软件)

    可以自定义函数的文本计算器 可以通过输入“3+5”的文本后回车计算出结果 支持C语言脚本 支持十六进制

    原创MFC仿Windows计算器

    自己写的一个仿Windows的计算器,有“普通型”和“科学型”两种视图方式,除能完成基本的常用计算功能外,本软件界面还可通过菜单来控制其透明度,可返当前系统时间、日历等,且此小小计算器主窗体始终处于其它软件...

    原创简易java计算器

    【标题】"原创简易java计算器"的实现是一个基础但实用的编程项目,它展示了如何使用Java语言构建一个简单的图形用户界面(GUI)计算器。这个计算器能够执行基本的数学运算,如加、减、乘、除,为初学者提供了一个...

    【原创】计算器

    【原创】计算器是一款免费的绿色计算工具,设计简洁,功能实用,无需安装即可直接使用,没有任何使用限制。这款计算器由xiefi于2014年1月25日发布,作者鼓励用户下载并积极反馈可能遇到的问题或提出改进建议。 在IT...

    小楼原创axure原型-真正能计算的计算器原型2.0

    小楼原创axure原型-真正能计算的计算器原型2.0

    超级计算器工具MathToolkit(原创)

    超级计算器工具MathToolkit(原创),功能齐全。 1、常规科学计算器功能(支持 +、-、*、\、^、%、! 各种运算,常用函数,变量存储),还具有金额转大写,数列求和功能。 2、大整数运算,阶乘 乘方 3、进制转换 4、...

    【原创】C语言编写的科学计算器【源代码】

    【原创】C语言编写的科学计算器【源代码】

    智能迷你小型计算器(原创)

    本软件是基于Java Swing开发的小型计算器应用,是我在代课的时候给学生们布置的JAVA毕业设计小作业。改计算器支持带小数的四则运算,并且计算结果能保留很高精度,对用户输入的表达式能及时判断语法的合法性,并通过...

    c#简单计算器程序 (花非花原创)

    【标题】:“C#简单计算器程序(花非花原创)”是一个基础的编程项目,旨在为初学者提供一个学习C#编程语言的实践案例。这个程序实现了一个基本的计算器功能,能够进行基本的数学运算。 【描述】:作为开发者首次...

    android科学计算器源码(修改原创)

    【Android科学计算器源码解析】 Android科学计算器源码是一个典型的移动应用开发实例,它涉及到许多Android平台的基础知识和高级特性。下面将详细讲解这个源码中的关键知识点。 1. **用户界面(UI)设计** - ...

Global site tag (gtag.js) - Google Analytics