java实现简单的计算器类实例

本文实例讲述了java实现简单的计算器类。分享给大家供大家参考。具体如下:

package chap;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DecimalFormat;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Calculator {
  private JFrame frame;
  private JPanel panel,panelKeys,panelKeys_up,panelKeys_down;
  private JTextField textComputer;//计算区域
  private JButton buttonBk,buttonC;//退格键和清零键
  private JButton button[];//数字键组
  private JButton buttonDot,buttonAddSub,buttonAdd,buttonSub,buttonMul,buttonDiv,button1,button2,button3,buttonEqual;
  private double result;//计算结果
  private final short ADD = 1;
  private final short SUB = 2;
  private final short MUL = 3;
  private final short DIV = 4;
  private short operator = -1;//运算符
  public Calculator(){
    frame = new JFrame("计算机");
    frame.setSize(400, 250);
    panel = new JPanel();//全局面板
    panel.setVisible(true);
    frame.setVisible(true);
    frame.getContentPane().add(panel);
    ActionListener listener = new ComputerActionListener();//按键监听器
    //计算区
    textComputer = new JTextField(15);
    textComputer.setText("");
    textComputer.setEditable(false);
    textComputer.setBackground(new Color(255,255,255));
    //功能键上半部分
    panelKeys_up = new JPanel();
    panelKeys_up.setLayout(new FlowLayout(FlowLayout.RIGHT));
    buttonBk = new JButton("Backspace");
    buttonBk.setForeground(new Color(255,0,0));
    buttonC = new JButton("C");
    buttonC.setForeground(new Color(255,0,0));
    buttonBk.addActionListener(listener);
    buttonC.addActionListener(listener);
    panelKeys_up.add(buttonBk);
    panelKeys_up.add(buttonC);
    //功能键下半部分
    panelKeys_down = new JPanel();
    panelKeys_down.setLayout(new GridLayout(4,5));
    button = new JButton[10];
    for(int i = 0;i < button.length;i++){
      button[i] = new JButton(Integer.toString(i));
      button[i].setForeground(new Color(255,0,0));
    }
    buttonAddSub = new JButton("+/-");
    buttonAddSub.setForeground(new Color(255,0,0));
    buttonAdd = new JButton("+");
    buttonAdd.setForeground(new Color(255,0,0));
    buttonSub = new JButton("-");
    buttonSub.setForeground(new Color(255,0,0));
    buttonMul = new JButton("*");
    buttonMul.setForeground(new Color(255,0,0));
    buttonDiv = new JButton("/");
    buttonDiv.setForeground(new Color(255,0,0));
    button1 = new JButton();
    button2 = new JButton();
    button3 = new JButton();
    button1.setForeground(new Color(255,0,0));
    button2.setForeground(new Color(255,0,0));
    button3.setForeground(new Color(255,0,0));
    buttonEqual = new JButton("=");
    buttonEqual.setForeground(new Color(255,0,0));
    buttonAddSub.addActionListener(listener);
    buttonAdd.addActionListener(listener);
    buttonSub.addActionListener(listener);
    buttonMul.addActionListener(listener);
    buttonDiv.addActionListener(listener);
    buttonEqual.addActionListener(listener);
    for(int i = 0 ; i <=9 ; i++){
      button[i].addActionListener(listener);
    }
    for(int i = 0 ; i <=9 ; i++){
      panelKeys_down.add(button[i]);
    }
    panelKeys_down.add(buttonAddSub);
    panelKeys_down.add(buttonAdd);
    panelKeys_down.add(buttonSub);
    panelKeys_down.add(buttonMul);
    panelKeys_down.add(buttonDiv);
    panelKeys_down.add(buttonEqual);
    panel.setLayout(new BorderLayout());
    panel.add(textComputer,BorderLayout.NORTH);
    panel.add(panelKeys_up,BorderLayout.CENTER);
    panel.add(panelKeys_down,BorderLayout.SOUTH);
  }
  class ComputerActionListener implements ActionListener{
    @Override
    public void actionPerformed(ActionEvent event) {
      // TODO Auto-generated method stub
      Object keyButton = event.getSource();
      String text = textComputer.getText();
      DecimalFormat df = new DecimalFormat("0.###########");
      //Backspace
      if(keyButton == buttonBk && text.length() > 0){
        textComputer.setText(text.substring(0,text.length()-1));
      }
      //C键
      if(keyButton == buttonC){
        result = 0;
        textComputer.setText("");
      }
      //数字键
      for(int i=0;i<10;i++){
        if(keyButton == button[i]){
          textComputer.setText(text+i);
        }
      }
      if(keyButton == buttonAdd){
        operator = 1;
      }
      if(keyButton == buttonSub){
        operator = 2;
      }
      if(keyButton == buttonMul){
        operator = 3;
      }
      if(keyButton == buttonDiv){
        operator = 4;
      }
      //符号键
      if(keyButton == buttonAdd || keyButton == buttonSub || keyButton == buttonMul || keyButton == buttonDiv || keyButton == buttonEqual){
        switch(operator){
        case ADD:
          result += Double.parseDouble(text);
          break;
        case SUB:
          result -=Double.parseDouble(text);
          break;
        case MUL:
          result *=Double.parseDouble(text);
          break;
        case DIV:
          result /=Double.parseDouble(text);
          break;
        default:
          result = Double.parseDouble(text);
        }
        textComputer.setText("");
      }
      if(keyButton == buttonEqual){
        textComputer.setText(String.valueOf(result));
      }
    }
  }
  public static void main(String args[]){
    new Calculator();
  }
}

希望本文所述对大家的java程序设计有所帮助。

(0)

相关推荐

  • Java对象简单实用案例之计算器实现代码

    对 Java中的对象与属性,方法的使用,简单写了个案例 import java.util.Scanner; class Calculste { int a; //定义两个整数 int b; String option; //定义接收操作符的字符串 public void count(){ //对操作符进行判断 switch(option){ case "+": System.out.println("计算和:"+a+"+"+b+"=&q

  • Java编写计算器的常见方法实例总结

    本文实例总结了Java编写计算器的常见方法.分享给大家供大家参考,具体如下: 方法一: package wanwa; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Calculator extends JFrame { private Container container; private GridBagLayout layout; private GridBagConstraint

  • java模仿windows计算器示例

    这个计算器的界面模仿Windows自带的简易计算器,包括交互界面和和对各种输入的响应.目前尚未实现菜单栏和记忆类按钮的功能 复制代码 代码如下: import java.awt.Color;import java.awt.Container;import java.awt.GridLayout;import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import

  • java图形界面AWT编写计算器

    一.前言 1)这个计算器是基于java语言下图形界面AWT编写的.其实我认为写这个计算器,实现什么功能不重要,市场也不缺这个计算器,而是在于对AWT中三大布局的及画板的使用简单控件的操作使用.通过联系熟悉掌握AWT基础为深入学习打下基础.这个计算器功能也十分简单,空有其表.不过有兴趣的话可以继续添加功能完善操作等. 2)使用平台:主要使用Myeclipse2014 3)主要知识点:java 基础; awt+swing 二.功能实现及代码展示 1)主要是layout布局的练习,对画板文本框的使用,

  • java 简单的计算器程序实例代码

    java 简单的计算器程序 实现实例: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Calculator { public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { CalculatorFrame frame = new Calculato

  • Java实现Andriod带看括弧的计算器代码

    废话不多说了,一切尽在代码中,具体代码如下所示: 界面 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_par

  • Java简易计算器程序设计

    编写一个模拟计算器的应用程序,使用面板和网格布局, 添加一个文本框,10个数字按钮(0~9),4个加减乘除按钮, 一个等号按钮,一个清除按钮,一个求平方根按钮,一个退格按钮, 要求将计算公式和结果显示在文本框中,实现效果如下图所示. Java简易计算器代码: import javax.swing.*; import javax.swing.JTextField; import java.awt.*; import java.awt.event.*; import java.lang.*; imp

  • 使用jsp调用javabean实现超简单网页计算器示例

    以下是代码: Calculator.java 复制代码 代码如下: package com.amos.model; import java.math.BigDecimal; /** * @ClassName: Calculator * @Description: 计算器 * @author: amosli * @email:amosli@infomorrow.com * @date Mar 20, 2014 1:04:59 AM  */ public class Calculator {    

  • java按钮控件数组实现计算器界面示例分享

    思路如下: 创建一个类,通过extends使其继承窗体类JFrame:创建一个JFrame对象,使用JFrame类的setVisible()方法设置窗体可见:在构造函数中,使用super()方法继承父类的构造方法:使用setTitle()方法设置窗体的标题:使用setBounds()方法设置窗体的显示位置及大小:使用setDefaultCloseOperation()方法设置窗体关闭按钮的动作为退出:使用GridLayout创建网格布局管理器对象:使用GridLayout类的setHgap()方

  • java实现简单的计算器类实例

    本文实例讲述了java实现简单的计算器类.分享给大家供大家参考.具体如下: package chap; import java.awt.BorderLayout; import java.awt.Color; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text

  • java实现简单年龄计算器

    本文实例为大家分享了java实现简单年龄计算器的具体代码,供大家参考,具体内容如下 制作一个如下图年龄计算器 根据题目,我做了一个由Calendar类以及年月日各相减得到的年龄,当然正确的方法不止一个,以下为我的源代码和结果截图: package com.Date; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.uti

  • Java Web 简单的分页显示实例代码

    本文通过两个方法:(1)计算总的页数. (2)查询指定页数据,实现简单的分页效果. 思路:首先得在 DAO 对象中提供分页查询的方法,在控制层调用该方法查到指定页的数据,在表示层通过 EL 表达式和 JSTL 将该页数据显示出来. 先给大家展示下效果图: 题外话:该分页显示是用 "表示层-控制层-DAO层-数据库"的设计思想实现的,有什么需要改进的地方大家提出来,共同学习进步.废话不多说了,开始进入主题,详细步骤如下所示: 1.DAO层-数据库 JDBCUtils 类用于打开和关闭数据

  • java读取简单excel通用工具类

    本文实例为大家分享了java读取简单excel通用工具类的具体代码,供大家参考,具体内容如下 读取excel通用工具类 import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org

  • Java中IO流 RandomAccessFile类实例详解

    Java中IO流 RandomAccessFile类实例详解 RandomAccessFile java提供的对文件内容的访问,既可以读文件,也可以写文件. 支持随机访问文件,可以访问文件的任意位置. java文件模型,在硬盘上的文件是byte byte byte存储的,是数据的集合 打开文件,有两种模式,"rw"读写."r"只读:RandomAccessFile raf = new RandomAccessFile(file, "rw");,文

  • Java常用的时间工具类实例

    本文实例讲述了Java常用的时间工具类.分享给大家供大家参考,具体如下: package org.zhy.date; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; /** * 时间类型工具类 * * @author zhengyi * */ pu

  • CI框架简单邮件发送类实例

    本文实例讲述了CI框架简单邮件发送类.分享给大家供大家参考,具体如下: ci框架绝对是php初学中想要的东西,它能极大的缩短你的代码量! 下面看看我的发送邮件的简单演示: function email() { $this->load->library('email'); $config['protocol'] = 'smtp'; $config['smtp_host'] = 'smtp.163.com'; $config['smtp_user'] = 'jb51@163.com';//这里写上

  • PHP简单数据库操作类实例【支持增删改查及链式操作】

    本文实例讲述了PHP简单数据库操作类.分享给大家供大家参考,具体如下: 在进行项目开发时,数据库是必不可少的东西了.但是很多时候却又对数据库SQL语句的繁杂而感到头疼.提供一个我自己使用的数据库操作类(模型Model),供大家使用.支持增.删.改.查,支持链式操作,代码不到100行,非常小巧方便,很适合小项目的快速部署使用. /** * * @Authot: summer * * @E-mail: wenghang1228@me.com * * @Data: 2015-02-06 * * @Pr

  • java身份证合法性校验工具类实例代码

    1.身份证规则 计算方法(来源百度) 将前面的身份证号码17位数分别乘以不同的系数.从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2. 将这17位数字和系数相乘的结果相加. 用加出来和除以11,看余数是多少? 余数只可能有0-1-2-3-4-5-6-7-8-9-10这11个数字.其分别对应的最后一位身份证的号码为1-0-X -9-8-7-6-5-4-3-2.(即余数0对应1,余数1对应0,余数2对应X-) 通过上面得知如果余数是3,就会在身份

随机推荐