`

以前用java写的计算器程序

阅读更多
以前用java写的计算器程序:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Calculator extends JFrame
{
 private Container container;
 private GridBagLayout layout;
 private GridBagConstraints constraints; 
 private JTextField displayField;//计算结果显示区
 private String lastCommand;//保存+,-,*,/,=命令
 private double result;//保存计算结果
 private boolean start;//判断是否为数字的开始
 
  public Calculator()
  {
  super("Calculator");
  container=getContentPane();
  layout=new GridBagLayout();
  container.setLayout(layout);
  constraints=new GridBagConstraints();
  
  start=true;
  result=0;
  lastCommand = "=";
  
  displayField=new JTextField(20);
  displayField.setHorizontalAlignment(JTextField.RIGHT);
  constraints.gridx=0;
  constraints.gridy=0;
  constraints.gridwidth=4;
  constraints.gridheight=1;
  constraints.fill=GridBagConstraints.BOTH;
  constraints.weightx=100;
  constraints.weighty=100;
  layout.setConstraints(displayField,constraints);
  container.add(displayField);
  
  ActionListener insert = new InsertAction();
    ActionListener command = new CommandAction();
    
  addButton("Backspace",0,1,2,1,insert);
  addButton("CE",2,1,1,1,insert);
  addButton("C",3,1,1,1,insert);
  
  addButton("7",0,2,1,1,insert);
  addButton("8",1,2,1,1,insert);
  addButton("9",2,2,1,1,insert);
  addButton("/",3,2,1,1,command);
  
  addButton("4",0,3,1,1,insert);
  addButton("5",1,3,1,1,insert);
  addButton("6",2,3,1,1,insert);
  addButton("*",3,3,1,1,command);
  
  addButton("1",0,4,1,1,insert);
  addButton("2",1,4,1,1,insert);
  addButton("3",2,4,1,1,insert);
  addButton("-",3,4,1,1,command);
  
  addButton("0",0,5,1,1,insert);
  addButton("+/-",1,5,1,1,insert);//只显示"-"号,"+"没有实用价值
  addButton(".",2,5,1,1,insert);
  addButton("+",3,5,1,1,command);
  
  addButton("=",0,6,4,1,command);
  
  setSize(300,300);
  setVisible(true);
  }
  private void addButton(String label,int row,int column,int with,int height,ActionListener listener)
  {
   JButton button=new JButton(label);
 
   constraints.gridx=row;
   constraints.gridy=column;
   
   constraints.gridwidth=with;
   constraints.gridheight=height;
   
    constraints.fill=GridBagConstraints.BOTH;
   
   button.addActionListener(listener);
   layout.setConstraints(button,constraints);
   container.add(button);
  }
  private class InsertAction implements ActionListener
    {
       public void actionPerformed(ActionEvent event)
       {
          String input=event.getActionCommand();
          if (start)
          {
             displayField.setText("");
             start=false;
             
             if(input.equals("+/-"))
             displayField.setText(displayField.getText()+"-"); 
          }
          if(!input.equals("+/-"))
          {
           if(input.equals("Backspace"))
           {
            String str=displayField.getText();
            if(str.length()>0)
              displayField.setText(str.substring(0,str.length()-1));
            }
           else if(input.equals("CE")||input.equals("C"))
           {
            displayField.setText("0");
            start=true;
           } 
           else
             displayField.setText(displayField.getText()+input);
         }
       }
    }
    private class CommandAction implements ActionListener
    {
       public void actionPerformed(ActionEvent evt)
       {
          String command=evt.getActionCommand();
          if(start)
          {
           lastCommand=command;
          }
          else
          {
          calculate(Double.parseDouble(displayField.getText()));
          lastCommand=command;
          start=true;
          }
         }
      }
   public void calculate(double x)
   {
      if (lastCommand.equals("+")) result+= x;      
      else if (lastCommand.equals("-")) result-=x;
      else if (lastCommand.equals("*")) result*=x;       
      else if (lastCommand.equals("/")) result/=x;
      else if (lastCommand.equals("=")) result=x;
       displayField.setText(""+ result);
    }
   public static void  main(String []args)
   {
     Calculator calculator=new Calculator();
     calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   }
}

分享到:
评论

相关推荐

    基于java的计算器

    在本项目中,我们关注的是一个基于Java编程语言实现的计算器程序。这个计算器不仅具备基本的计算功能,如加、减、乘、除,还具有一个独特的特性——能够保存计算结果。这样的功能使得用户可以方便地回顾和使用之前的...

    java做的简易计算器

    描述中提到,这个计算器程序是开发者很久以前编写的,可能不那么完美,但仍然具有参考价值。发布者希望与社区分享,并期待得到反馈和建议。这种开放的态度有助于编程知识的传播和提升。 在标签中,“java 计算器”...

    java编写的一个计算器小程序(图形用户界面组件GUI)

    这个计算器项目很可能使用了Swing,因为它在Java SE 8及以前版本中是默认的GUI库。 2. **Swing组件**: Swing库提供了许多组件,如JFrame(窗口)、JButton(按钮)、JLabel(标签)和JTextField(文本框)。在这个...

    多彩计算器(java)源代码+截图+程序

    用java写的图形界面计算器,在Linux下完成,Windows 7下测试与之无异。 界面主要用swing和awt实现,有注释。代码共500行左右,算法部分100行不到,主要代码花在输入判断上,所有不合乎算式语法的都不能输入,即使乱...

    Java的swing版本计算器calc

    这个"Java的swing版本计算器calc"项目是利用Java Swing构建的一个简单计算器应用程序,旨在提供基本的数学运算功能,如加、减、乘、除,以及可能包括括号、指数和其他高级运算。下面我们将深入探讨Java Swing以及...

    java编的仿windows的计算器

    这个计算器程序通常会包含基本的数学运算,如加、减、乘、除,以及更复杂的函数,比如求平方根、立方根、指数、对数等。下面我们将深入探讨Java编程在实现这一项目时涉及的关键知识点。 1. **Java基础知识**:首先...

    简单计算器(正确代码)

    【描述】描述中提到,作者已经将这个计算器程序编译为可执行的JAR文件(Calculator.jar),这意味着它是用Java语言编写的。Java是一种跨平台的编程语言,通过Java虚拟机(JVM)可以在任何支持Java的设备上运行。用户...

    java课程设计-计算器的设计与实现.pdf

    本资源是一个Java课程设计报告,旨在设计和实现一个计算器,涵盖了面向对象程序设计的理论、方法和基础知识。该设计报告包括需求分析、概要设计、详细设计三个部分。 需求分析部分,设计了一個计算器的用例图,功能...

    JAVA课程设计-保存计算过程的计算器.doc

    本文档主要介绍了使用JAVA语言设计的保存计算过程的计算器课程设计。该设计旨在帮助用户快速准确地得到计算结果,并提供用户随时随地的查找以前的计算过程的能力。 知识点1:面向对象程序设计 在本设计中,我们...

    java 小程序 合并excel(2010版)

    对于用java开发小程序 真是一窍不通 最后在网络上看到个计算器 好东西啊,swing 基本不会, 看到几个内部类 和构造函数里面放监听。我就用JFileChooser可以选择多个文件 嗯 good 就靠这个组件了。 然后 就是 poi ...

    java课程设计-模拟科学计算器.doc

    【Java课程设计-模拟科学计算器】是一门实践性教学环节,旨在通过开发一个模拟科学计算器应用,提升学生的Java编程能力和软件工程实践技能。这个项目要求学生掌握Java语言的基础知识,理解面向对象编程思想,并能够...

    计算器,可提示出错,可记录,可查询

    在实现这个计算器程序时,开发人员可能会选择使用一种编程语言,如Python、Java或C++,这些语言都有强大的数学库支持。此外,为了创建用户界面,可能使用图形用户界面(GUI)库,如Tkinter(Python)、Swing或JavaFX...

    JAVA课程设计简单的计算器(含代码).pdf

    - **Java**: 使用Java编程语言实现计算器的所有功能。 - **AWT和Swing**: 这是Java的图形用户界面(GUI)库,用于创建窗口、按钮、文本框等组件。 - **JDK和JCreator**: JDK是Java开发工具包,包含编译器和运行环境...

    我们做的计算器

    【简易计算器程序详解】 在IT领域,开发一个计算器软件是一项基础但重要的实践任务,它可以锻炼开发者对编程逻辑、用户界面设计以及程序调试等多方面技能。"我们做的计算器"是一款简洁易用的计算器应用程序,旨在为...

    带历史记忆三星安卓手机计算器

    2. **classes.dex**:这是Dalvik Executable文件,包含应用程序的Java字节码,是Android应用的主要运行代码。 3. **AndroidManifest.xml**:这是Android应用的配置文件,定义了应用的基本信息(如应用名、版本、权限...

    Calculator:可以保存以前答案的简单计算器 Android 应用程序

    在Android平台上,开发一个可以保存以前答案的简单计算器应用程序是一个常见的任务,这涉及到对基本的计算器功能的理解,以及如何在Android环境中实现数据持久化。在这个项目中,我们使用了Java编程语言,这是...

    简单计算器制作代码.zip

    在本项目中,"简单计算器制作代码.zip"包含了一个基于Java编程语言实现的简单计算器程序。这个计算器能够处理包括括号在内的四则运算,提供了一种基础的计算能力,适用于学习和理解计算机如何处理数学表达式。下面...

    LAB-applet-calculator.rar_计算器 applet_高级计算器

    这个项目旨在展示如何使用Java来创建一个不仅具有基本计算功能,而且还包括一些高级计算特性的应用。 首先,我们需要理解Applet的基本结构和生命周期。一个Applet通常包含`init()`, `start()`, `paint()`, `stop()`...

    SmallCalculator:一个小型计算器,具有五个最简单的操作,用Python写成100行或更少的代码!

    小型计算器 一个小型计算器,具有五个最简单的操作,用Python写成100... (我在学习Python时就写了这篇文章,对此编程语言的简易程度深感惊讶,因此,我决定用少于100行的代码来取代以前用Java编写计算器的所有尝试。)

    计算器(可科学计算)

    在实现这样的计算器应用时,开发者可能会选择使用像Java、Python或C#这样的编程语言,利用它们的GUI库来构建界面,同时结合内置的数学库或者自行编写的算法来实现计算功能。考虑到这个程序是“本人打的”,很可能是...

Global site tag (gtag.js) - Google Analytics