`
feargod
  • 浏览: 44316 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

java实现简易计算器

阅读更多

import javax.swing.JTextField;


public class Culator {

 private static final String String = null;
 JTextField op;
 private String re;

 /**
  * @param args
  */
 public static void main(String[] args) {
  Culator cul = new Culator();
  cul.init();
  // TODO Auto-generated method stub

 }
 public void init(){
  javax.swing.JFrame frame = new javax.swing.JFrame();
  frame.setTitle("计算器");
  java.awt.FlowLayout f1= new java.awt.FlowLayout();
  frame.setLayout(f1);
  javax.swing.JMenuBar cai = createMB();
  frame.setJMenuBar(cai);
  javax.swing.JButton mc = new javax.swing.JButton("MC");
  op= new javax.swing.JTextField("0",25);
  //设置数字从右边开始显示
  op.setHorizontalAlignment(JTextField.RIGHT); 
  //设置按钮
  javax.swing.JButton mr = new javax.swing.JButton("MR");
  javax.swing.JButton ms = new javax.swing.JButton("MS");
  javax.swing.JButton mp = new javax.swing.JButton("M+");
  javax.swing.JButton mm = new javax.swing.JButton("M-");
  javax.swing.JButton delete = new javax.swing.JButton(" ← ");
  javax.swing.JButton ce = new javax.swing.JButton("CE ");
  javax.swing.JButton c = new javax.swing.JButton(" C  ");
  javax.swing.JButton pm = new javax.swing.JButton("  ± ");
  javax.swing.JButton r = new javax.swing.JButton(" √ ");
  javax.swing.JButton seven = new javax.swing.JButton("  7  ");
  javax.swing.JButton eight = new javax.swing.JButton("  8  ");
  javax.swing.JButton nine = new javax.swing.JButton("  9  ");
  javax.swing.JButton under = new javax.swing.JButton("  /  ");
  javax.swing.JButton percent = new javax.swing.JButton(" % ");
  javax.swing.JButton four = new javax.swing.JButton("  4  ");
  javax.swing.JButton five = new javax.swing.JButton("  5  ");
  javax.swing.JButton six = new javax.swing.JButton("  6  ");
  javax.swing.JButton and = new javax.swing.JButton("  * ");
  javax.swing.JButton ds = new javax.swing.JButton("1/x");
  javax.swing.JButton one = new javax.swing.JButton("  1  ");
  javax.swing.JButton two = new javax.swing.JButton("  2  ");
  javax.swing.JButton three = new javax.swing.JButton("  3  ");
  javax.swing.JButton m = new javax.swing.JButton("  - ");
  javax.swing.JButton equal = new javax.swing.JButton("  =  ");
  javax.swing.JButton zero = new javax.swing.JButton("                     0                     ");
  javax.swing.JButton dot = new javax.swing.JButton("  .  ");
  javax.swing.JButton plus = new javax.swing.JButton("  +  ");
  //添加按钮
  frame.add(op);
  frame.add(mc);
  frame.add(mr);
  frame.add(ms);
  frame.add(mp);
  frame.add(mm);
  frame.add(delete);
  frame.add(ce);
  frame.add(c);
  frame.add(pm);
  frame.add(r);
  frame.add(seven);
  frame.add(eight);
  frame.add(nine);
  frame.add(under);
  frame.add(percent);
  frame.add(four);
  frame.add(five);
  frame.add(six);
  frame.add(and);
  frame.add(ds);
  frame.add(one);
  frame.add(two);
  frame.add(three);
  frame.add(m);
  frame.add(equal);
  frame.add(zero);
  frame.add(dot);
  frame.add(plus);
  frame.setSize(290,300);
  //实例化一个Caculate类
  Caculate cal = new Caculate(op);
  //增加监听
  op.addActionListener(cal);
  mc.addActionListener(cal);
  mr.addActionListener(cal);
  ms.addActionListener(cal);
  mp.addActionListener(cal);
  mm.addActionListener(cal);
  delete.addActionListener(cal);
  ce.addActionListener(cal);
  c.addActionListener(cal);
  pm.addActionListener(cal);
  r.addActionListener(cal);
  seven.addActionListener(cal);
  eight.addActionListener(cal);
  nine.addActionListener(cal);
  under.addActionListener(cal);
  percent.addActionListener(cal);
  four.addActionListener(cal);
  five.addActionListener(cal);
  six.addActionListener(cal);
  and.addActionListener(cal);
  ds.addActionListener(cal);
  one.addActionListener(cal);
  two.addActionListener(cal);
  three.addActionListener(cal);
  m.addActionListener(cal);
  equal.addActionListener(cal);
  zero.addActionListener(cal);
  dot.addActionListener(cal);
  plus.addActionListener(cal);
  frame.setDefaultCloseOperation(3);
  frame.setResizable(false);
  frame.setVisible(true);
  
 }
 //创建一个设置TextField窗口容的函数
 //public void setOp(String re){
 // op.setText(re);
 //}
 //创建一个常带有菜单的菜单条,就加到JFrame上显示
 private javax.swing.JMenuBar createMB(){
  //创建菜单条
  javax.swing.JMenuBar mb = new javax.swing.JMenuBar();
  //创建查看菜单
  javax.swing.JMenu view = new javax.swing.JMenu("查看(V)");
  //创建菜单项
  javax.swing.JMenuItem biaozhun = new javax.swing.JMenuItem("标准型");
  javax.swing.JMenuItem kexue = new javax.swing.JMenuItem("科学型");
  javax.swing.JMenuItem chengxu = new javax.swing.JMenuItem("程序员");
  javax.swing.JMenuItem tongji = new javax.swing.JMenuItem("统计信息");
  javax.swing.JMenuItem history = new javax.swing.JMenuItem("历史");
  //将菜单项添加到菜单上
  view.add(biaozhun);
  view.add(kexue);
  view.add(chengxu);
  view.add(tongji);
  view.add(history);
  //创建编辑菜单
  javax.swing.JMenu operation = new javax.swing.JMenu("编辑(O)");
  //创建菜单项
  javax.swing.JMenuItem copy = new javax.swing.JMenuItem("复制");
  javax.swing.JMenuItem paste = new javax.swing.JMenuItem("黏贴");
  javax.swing.JMenuItem hr = new javax.swing.JMenuItem("历史记录");
  //将菜单项添加到菜单上
  operation.add(copy);
  operation.add(paste);
  operation.add(hr);
  //创建帮助菜单
  javax.swing.JMenu help = new javax.swing.JMenu("帮助(H)");
  //创建帮助菜单项
  javax.swing.JMenuItem vh = new javax.swing.JMenuItem("查看帮助");
  javax.swing.JMenuItem about = new javax.swing.JMenuItem("关于计算器");
  //将菜单项添加到菜单上
  help.add(vh);
  help.add(about);
  //加上一个分隔条
  help.addSeparator();
  //将菜单添加到菜单条上
  mb.add(view);
  mb.add(operation);
  mb.add(help);
  return mb;
  
  
  
  
 }
 

}
//定义计算的类

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JTextField;


public class Caculate implements ActionListener {
 //设置属性
 private String data;
 private JTextField text;
 private String result = "0";
 private boolean start_new = false;
 private double last_value = 0;
 private String ope = "";
 private double value = 0;
 public String getResult (){
  return result;
 }
 //定义一个构造方法
 public Caculate(JTextField text){
  this.text = text;
 }
  @Override//按钮事件处理
 public void actionPerformed(ActionEvent cal) {
  // TODO Auto-generated method stub
  data = cal.getActionCommand();
  data = data.trim();
  if("0123456789".indexOf(data) != -1){
   numButton(data);
  }else if (".".indexOf(data) != -1){
   dotButton(data);
  }else if ("+-*/".indexOf(data) != -1){
   operateButton(data);
  }else if ("=".indexOf(data)!=-1){
   equalButton();
  }
  //System.out.println(data);
  System.out.println(result);
  text.setText(result);
 }
 //计算程序
 private void numButton(String da){
  if(!start_new){
   result = result + da;
  }
  else{
   result = da;
  }
  while (result.startsWith("0")&&!result.startsWith("0.")&&result.length()>0){
   result = result.substring(1);
  }
  start_new = false;
 }
 private void dotButton(String da){
  if(da.indexOf(".")!= -1){
   result = result + da;
  }
 }
 private void operateButton(String da){
  if(result.length()>0){
   last_value = Double.parseDouble(result);
   ope = da;
   start_new = true;
  }
 }
 private void equalButton(){
  value = Double.parseDouble(result);
  if(ope.equals("+")){
   result = String.valueOf(last_value + value);
  }
  else if(ope.equals("-")){
   result = String.valueOf(last_value - value);
  }else if(ope.equals("*")){
   result = String.valueOf(last_value * value);
  }else if(ope.equals("/")){
   if(value == 0){
    result = "ERROR";
   }
   else{
    result = String.valueOf(last_value / value);
   }
  }
  // 去掉结尾的“.0000...”  
        if (result.matches(".+\\.0+")) {  
            result = result.substring(0, result.lastIndexOf("."));  
        }  
 
        // 设置状态  
        start_new = true;  
        ope = "";  

  
 }

}

1
1
分享到:
评论

相关推荐

    Java实现简易计算器.doc

    "Java实现简易计算器" Java实现简易计算器是Java语言程序设计的实践项目,旨在检验和巩固专业知识,提高综合素质和能力。该项目的主要目的是使用Java语言编写一个简单的计算器,使其能够实现最基本的功能,如简单...

    Java实现简易计算器培训课件.pdf

    ### Java实现简易计算器知识点概述 #### 一、实验目的与意义 - **检验与巩固专业知识:** 通过实际编程项目加深对Java语言的理解与应用,检验学生对Java基础语法、对象模型、图形用户界面(GUI)等核心概念的掌握...

    Java实现简易计算器培训课件.docx

    Java实现简易计算器培训课件.docxJava实现简易计算器培训课件.docxJava实现简易计算器培训课件.docxJava实现简易计算器培训课件.docxJava实现简易计算器培训课件.docxJava实现简易计算器培训课件.docxJava实现简易...

    java简易计算器 java简易计算器

    java简易计算器 java简易计算器 java简易计算器java简易计算器 java简易计算器 java简易计算器java简易计算器 java简易计算器 java简易计算器java简易计算器 java简易计算器 java简易计算器java简易计算器 java简易...

    Java实现简易计算器.rar

    在本项目中,"Java实现简易计算器.rar" 是一个基于Java Swing库构建的简单计算器应用程序。Swing是Java提供的一种用于构建图形用户界面(GUI)的工具包,它允许开发者创建丰富的桌面应用。以下是这个项目涉及到的...

    java 简易计算器的实现

    在Java编程语言中,实现一个简易计算器涉及到基本的算术运算、用户输入处理以及控制流程。下面我们将深入探讨这个主题。 首先,让我们了解一个简单的Java计算器的基本架构。它通常包含一个主类,其中定义了计算功能...

    JAVA实现简易计算器

    可以实现十进制、二进制转换,log,sin,cos等计算,可以使用括号进行整体运算

    基于Java swing组件实现简易计算器

    "基于Java swing组件实现简易计算器" 本文主要介绍了基于Java swing组件实现简易计算器的知识点,以下是相关知识点的总结: 1. JFrame组件:JFrame是Java swing组件中的一种顶层容器,用于创建一个窗口框架。通过...

    Java实现简易计算器应用详解

    内容概要:这是一个介绍如何使用Java编写简易计算器应用程序的文章,其中包括了对项目结构(Calculator、CalculatorFrame 和Main)、各个功能模块及其代码实现细节以及项目的运行说明。 适用人群:对面向对象编程有...

    基于java的简易计算器

    基于java的简易计算器,实现简单的加减乘除功能,用于学习java基础知识参考

    Java实现简易计算器[借鉴].pdf

    本文将以Java语言为载体,详细剖析如何实现一个简易计算器。此项目涵盖了图形用户界面(GUI)设计、事件处理、数据类型转换和基本的算术运算等核心知识点。 首先,从项目搭建开始,我们会使用Java语言进行程序编写。...

    java实现简易计算器功能

    "java实现简易计算器功能" 本文主要介绍了使用Java语言实现简易计算器功能的方法,旨在帮助读者了解如何使用Java语言编写一个基本的计算器程序。 知识点1:Java GUI编程 Java GUI(Graphical User Interface)编程...

    java GUI简易计算器

    Java GUI简易计算器是一种基于图形用户界面(GUI)的计算应用程序,使用Java编程语言实现。它主要依赖于Java的Swing库来构建用户界面,并通过监听鼠标事件来处理用户的输入和计算操作。在这个项目中,`JLabel`组件被...

    Java版简易计算器程序设计

    本项目为一个简易计算器的设计与实现,采用Java语言开发。该计算器具备基本的算术运算功能,并且集成了记忆存储功能,能够满足日常计算的基本需求。项目适用于教学演示和个人学习实践。 #### 二、关键技术点分析 #...

    Java实现简单计算器

    Java实现的简单计算器是一个基础的编程项目,它可以帮助初学者理解面向对象编程的概念以及Java语言的基本语法。在这个项目中,我们将探讨以下几个关键知识点: 1. **基本语法与数据类型**:Java是一种静态类型的...

Global site tag (gtag.js) - Google Analytics