计算器

简介: 计算器

package com.project.clock;

 

 

 

import java.awt.Color;

 

import java.awt.GridLayout;

 

import java.awt.event.ActionEvent;

 

import java.awt.event.ActionListener;

 

 

 

import javax.swing.JButton;

 

import javax.swing.JFrame;

 

import javax.swing.JPanel;

 

import javax.swing.JTextField;

 

 

 

public class Calc implementsActionListener{

 

 

 

        JTextFieldobjText = new JTextField();

 

        intintOperator = 0;

 

        StringstrBefore = "";

 

        StringstrAfter = "";

 

        StringstrResult = "";

 

        booleanblnFirst = true;

 

        booleanblnResult = false;

 

        booleanblnZero = false;

 

       

 

        privatevoid init(){

 

                 

 

                  JFrameobjFrame = new JFrame();

 

                  objFrame.setSize(200,280);

 

                  objFrame.setResizable(false);

 

                  objFrame.setDefaultCloseOperation(3);

 

                  objFrame.setLocationRelativeTo(null);

 

 

 

                  //GridLayoutFlowLayout BorderLayout

 

                 

 

                  objFrame.setLayout(newGridLayout(5,1));

 

                 

 

                 

 

                 

 

                  String[]strBtnName ={"1","2","3","+","4","5","6","-","7","8","9","*","0","C","=","/"};

 

                 

 

                  JPanelobjP1 = new JPanel();

 

                  JPanelobjP2 = new JPanel();

 

                  JPanelobjP3 = new JPanel();

 

                  JPanelobjP4 = new JPanel();

 

                 

 

                  JButtonobjBtn;

 

                 

 

                  for(inti=0;i<strBtnName.length;i++){

 

                           objBtn= new JButton(strBtnName[i]);

 

                           objBtn.addActionListener(this);

 

                           if(i<=3){

 

                                    objP1.add(objBtn);

 

                           }elseif(i>=4&&i<=7){

 

                                    objP2.add(objBtn);

 

                           }elseif(i>=8&&i<=11){

 

                                    objP3.add(objBtn);

 

                           }elseif(i>=12&&i<=15){

 

                                    objP4.add(objBtn);

 

                           }

 

                  }

 

                 

 

                  objFrame.add(objText);

 

                  objFrame.add(objP1);

 

                  objFrame.add(objP2);

 

                  objFrame.add(objP3);

 

                  objFrame.add(objP4);

 

 

 

 

 

                  objFrame.setVisible(true);

 

                 

 

        }

 

        publicstatic void main(String[] args) {

 

                  //TODO Auto-generated method stub

 

                  newCalc().init();

 

        }

 

        privatevoid continueOperator(){

 

 

 

                  if(blnFirst){

 

                           blnFirst= false;

 

                           strBefore= objText.getText();

 

                           objText.setText("");

 

                  }else{

 

                           if(!blnResult){

 

                                    strAfter= objText.getText();

 

                           }

 

                           if(!strBefore.equals("")&&!strAfter.equals("")){

 

                                    switch(intOperator){

 

                                    case1:

 

                                              strResult= String.valueOf(Integer.parseInt(strBefore) + Integer.parseInt(strAfter));

 

                                              break;

 

                                    case2:

 

                                              strResult= String.valueOf(Integer.parseInt(strBefore) - Integer.parseInt(strAfter));

 

                                              break;

 

                                    case3:

 

                                              strResult= String.valueOf(Integer.parseInt(strBefore) * Integer.parseInt(strAfter));

 

                                              break;

 

                                    case4:

 

                                              strResult= String.valueOf(Integer.parseInt(strBefore) / Integer.parseInt(strAfter));

 

                                              break;

 

                                    }

 

                                   

 

                                    objText.setText(strResult);

 

                                    blnResult= true;

 

                                    strBefore= strResult;

 

                                    strAfter= "";

 

                                    strResult= "";

 

                           }

 

                  }

 

        }

 

        privatevoid equal(){

 

                 

 

                  if(!blnResult){

 

                           strAfter= objText.getText();

 

                  }

 

                  if(!strBefore.equals("")&&!strAfter.equals("")){

 

                           switch(intOperator){

 

                           case1:

 

                                    strResult= String.valueOf(Integer.parseInt(strBefore) + Integer.parseInt(strAfter));

 

                                    objText.setText(strResult);

 

                                    blnResult= true;

 

                                    strBefore= strResult;

 

                                    strAfter= "";

 

                                    strResult= "";

 

                                    blnFirst= true;

 

                                    break;

 

                           case2:

 

                                    strResult= String.valueOf(Integer.parseInt(strBefore) - Integer.parseInt(strAfter));

 

                                    objText.setText(strResult);

 

                                    blnResult= true;

 

                                    strBefore= strResult;

 

                                    strAfter= "";

 

                                    strResult= "";

 

                                    blnFirst= true;

 

                                    break;

 

                           case3:

 

                                    strResult= String.valueOf(Integer.parseInt(strBefore) * Integer.parseInt(strAfter));

 

                                    objText.setText(strResult);

 

                                    blnResult= true;

 

                                    strBefore= strResult;

 

                                    strAfter= "";

 

                                    strResult= "";

 

                                    blnFirst= true;

 

                                    break;

 

                           case4:

 

                                    if(Integer.parseInt(strAfter)!=0){

 

                                              strResult= String.valueOf(Integer.parseInt(strBefore) / Integer.parseInt(strAfter));

 

                                              objText.setText(strResult);

 

                                              blnResult= true;

 

                                              strBefore= strResult;

 

                                              strAfter= "";

 

                                              strResult= "";

 

                                              blnFirst= true;

 

                                    }else{

 

                                              blnZero= true;

 

                                              blnFirst= true;

 

                                              objText.setText("");

 

                                    }

 

                                    break;

 

                           }

 

                         

 

                         

 

                  }

 

        }

 

        @Override

 

        publicvoid actionPerformed(ActionEvent e) {

 

                  //TODO Auto-generated method stub

 

                  if(e.getActionCommand().charAt(0)>='0'&&e.getActionCommand().charAt(0)<='9'){

 

                           if(blnZero){

 

                                    objText.setText("");

 

                                    blnZero= false;

 

                           }

 

                           if(blnResult){

 

                                    objText.setText("");

 

                                    blnResult= false;

 

                           }

 

                           objText.setText(objText.getText().concat(e.getActionCommand()));

 

                  }else{

 

                           switch(e.getActionCommand().charAt(0)){

 

                           case'+':

 

                                    continueOperator();

 

                                    intOperator= 1;

 

                                    break;

 

                           case'-':

 

                                    continueOperator();

 

                                    intOperator= 2;

 

                                    break;

 

                           case'*':

 

                                    continueOperator();

 

                                    intOperator= 3;

 

                                    break;

 

                           case'/':

 

                                    continueOperator();

 

                                    intOperator= 4;

 

                                    break;

 

                           case'C':

 

                                    intOperator= 0;

 

                                    strBefore= "";

 

                                    strAfter= "";

 

                                    strResult= "";

 

                                    blnFirst= true;

 

                                    blnResult= false;

 

                                    blnZero= false;

 

                                    objText.setText("");

 

                                    break;

 

                           case'=':

 

                                    equal();

 

                                    break;

 

                           }

 

                  }

 

        }


相关文章
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的社区智慧养老监护管理平台的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的社区智慧养老监护管理平台的详细设计和实现(源码+lw+部署文档+讲解等)
228 4
|
开发工具 C语言 数据安全/隐私保护
免杀工具 -- FourEye
免杀工具 -- FourEye
1037 0
免杀工具 -- FourEye
|
11月前
|
监控 Java 测试技术
Nacos 配置中心变更利器:自定义标签灰度
本文是对 MSE Nacos 应用自定义标签灰度的功能介绍,欢迎大家升级版本进行试用。
1023 215
|
缓存 NoSQL 关系型数据库
Redis第二课,1.set key value(设置对应的key和value)2.get key(得到value值)Redis全局命令(支持很多的数据结构)3.keys(用来查询当前
Redis第二课,1.set key value(设置对应的key和value)2.get key(得到value值)Redis全局命令(支持很多的数据结构)3.keys(用来查询当前
java是值传递还是引用传递
本文澄清了Java中参数传递的常见误解,总结出Java采用“值传递”的方式。对于基本类型,传递其值的拷贝,方法内修改不影响原值;而对于对象类型,则传递其引用地址的拷贝,尽管是拷贝,但因指向同一对象,故方法内的修改会影响原对象状态。形参仅在方法内部有效,而实参则是调用方法时传递的具体值。通过示例和比喻(如复刻仓库钥匙),形象地解释了值传递、引用传递及Java特有的“共享对象传递”概念,帮助理解不同情况下参数传递的行为差异。
200 1
|
SQL 监控 关系型数据库
实时计算 Flink版操作报错合集之在设置监控PostgreSQL数据库时,将wal_level设置为logical,出现一些表更新和删除操作报错,怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
Dubbo Java 应用服务中间件
微服务框架(八)Spring Boot AOP 日志切面实现
  此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。   本文为使用Spring Boot AOP 实现日志切面、分离INFO和ERROR级别日志
|
存储 算法 关系型数据库
PostgreSQL 垃圾回收参数优化之 - maintenance_work_mem , autovacuum_work_mem
PostgreSQL 垃圾回收参数优化之 - maintenance_work_mem , autovacuum_work_mem
3719 1
|
移动开发 前端开发 JavaScript
超详细讲解 H5 移动端适配方案
超详细讲解 H5 移动端适配方案
超详细讲解 H5 移动端适配方案