(没有括号和优先级,简易计算器)界面:

package javaprogram;import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;class Calculator extends JFrame{private JLabel showJlabel = new JLabel();  //用来显示数值     //基础组件private JPanel numJpanel = new JPanel();   //按钮面板   //容器类private JPanel mainJpanel = new JPanel();   //主面板private double result;   //用来接收计算结果private String symbol;    //用来接收符号private boolean start;   //用来判断是否重新开始public void  init(){//初始化this.setSize(300,220);   //给窗体设置大小this.setVisible(true);   //让窗体可见this.setLocationRelativeTo(null);   //让窗体居中的方法this.setDefaultCloseOperation(EXIT_ON_CLOSE);    //点击退出则程序关闭this.setTitle("-----中华小妹牌计算器------");    //设置窗体标题mainJpanel.setLayout(new BorderLayout());    //给主面板设为边框布局mainJpanel.add(showJlabel,"North");      //让显示框位于主面板北方mainJpanel.add(numJpanel);//在主面板中添加按钮面板this.add(mainJpanel);symbol ="=";//默认showJlabel.setText("0");    //给显示框设置默认值0showJlabel.setForeground(Color.blue);start=true;     //默认开始numJpanel.setLayout(new GridLayout(5,4));//将界面划分成5行4列Action1 action1 = new Action1();//添加数字和归零符号等处理    //准备监听对象Action2 action2 = new Action2();//添加运算符号this.addButton("C",action1);//归0this.addButton("/",action2);this.addButton("*",action2);this.addButton("BACK",action1);//清除打错的字符this.addButton("7",action1);this.addButton("8",action1);this.addButton("9",action1);this.addButton("+",action2);this.addButton("4",action1);this.addButton("5",action1);this.addButton("6",action1);this.addButton("-",action2);this.addButton("1",action1);this.addButton("2",action1);this.addButton("3",action1);this.addButton("%",action2);this.addButton(".",action1);this.addButton("0",action1);this.addButton("=",action2);this.addButton("",action1);}//添加按钮并给按钮设置监听方法    监听按钮public void addButton(String string,ActionListener a1){JButton button =new JButton(string);//创建一个有标签文本、无图标的按钮button.addActionListener(a1);numJpanel.add(button);}//数字和基本操作处理class Action1 implements ActionListener{ //接收操作事件的监听器接口public void actionPerformed(ActionEvent e){//同一个JFrame里可能有多个按钮的事件,为了避免冲突,给每个按钮设置不同的ActionCommandString input = e.getActionCommand();//获取事件的标签内容if(showJlabel.getText().equals("0")){start = true;}if(start){      //如果start是true,就表示重新开始输入新的数showJlabel.setText("");start = false;}if(!input.equals("BACK")&&!input.equals("C")) {//更新文本内容showJlabel.setText(showJlabel.getText() + input);}if(input.equals("C")){//归0操作showJlabel.setText("0");}if(input.equals("BACK")){    //回退操作if(showJlabel.getText().length()>1){showJlabel.setText(showJlabel.getText().substring(0, showJlabel.getText().length()-1));     //substring(0,3)string从0截取截到2} else{showJlabel.setText("0");}}}}//进行运算class Action2 implements ActionListener{public void actionPerformed(ActionEvent e){String input = e.getActionCommand();//获取事件的标签内容if(start){symbol = input;        //符号}else{if(symbol.equals("+")){result += Double.parseDouble(showJlabel.getText());   //将String类型的数字转换为double型的数字} else if(symbol.equals("-")){result -= Double.parseDouble(showJlabel.getText());} else if(symbol.equals("*")){result *= Double.parseDouble(showJlabel.getText());} else if(symbol.equals("/")){result /= Double.parseDouble(showJlabel.getText());} else if(symbol.equals("%")){result %= Double.parseDouble(showJlabel.getText());}else{//等于 “=” 直接显示输出的值result = Double.parseDouble(showJlabel.getText());      }showJlabel.setText(result+"");symbol = input;start = true;}}}public static void main(String[] args) {Calculator calculator=new Calculator();calculator.init();}
}

简易计算器(有界面)相关推荐

  1. C++builder中简易计算器的界面设计

    下面来介绍一下如何在C++builder中设计一个简易的计算器界面,并实现简单的数学计算,具体步骤如下: 1.首先打开C++builder6.0软件(也可以是高级版本,但我一般习惯用6.0版本的,这个 ...

  2. 基于MATLAB的GUI设计简易计算器

    MATLAB语言基于GUI设计简易计算器 GUI界面的设置 主页----新建----应用程序----GUIDE 进入下图所示界面 点击确定,即可生成GUI设计界面. 设计计算器界面,放置按键和显示屏, ...

  3. Java课设-百行代码实现简易计算器

    成绩: __________ Java程序设计 工程实践 --简易计算器的设计 院. 系 计算机与软件学院 专业 信息安全 姓 名 指导教师 2022年 6 月 11 日 目录: 一. 设计简介 2 ...

  4. QT学习日志(附:简易计算器,qq登录界面,简易绘图板,植物大战僵尸魔改版项目实践)

    目录 写在前面 实训前一天 头文件无法生成 项目栏不见了 不知道如何发布程序 实训第一天(附简易计算器的实现) 自定义命名空间的相关问题 关于隐式调用构造函数的问题 实训第二天(不附地址薄的实现) 关 ...

  5. java swt 计算器_JAVA开发简易计算器界面-SWT

    大家好,我是成都[LD],博客四年前就申请了,一直没打理,最近正好有时间,遂萌生了写技术博客的念头.我不得不感慨现在新技术更新很快,一不小心,就感觉自身就Out了.记得一年前,当时我也是在51CTO上 ...

  6. 项目:使用python做一个简易计算器,图形可视化,既有界面

    代码: import tkinter as tkclass Calc(tk.Frame): # 创建Calc类继承Framedef __init__(self, parent=None):" ...

  7. 简单计算器的设计java_(基于java的简易计算器的设计.doc

    (基于java的简易计算器的设计 基于java的简易计算器的设计 摘要 自从java语言诞生以来,java语言就以不可抵挡的趋势很快成为国际上广泛流行的面向对象编程语言,它既具有高级语言的特点,又少了 ...

  8. C++ Qt学习笔记 (1) 简易计算器设计

    最近开始学习c++ qt, 按照教材上的例程设计一个简易的桌面计算器: Qt是一个基于C++语言的跨平台应用程序和UI开发框架,主要包含一个类库,和跨平台开发及国际化的工具,最初由挪威的Trollte ...

  9. 利用Visual Studio(C++)实现简易计算器(二)

    简易计算器代码部分的实现 在已创建好的MFC解决方案里打开头文件下的-Dlg.h文件(以下简称.h文件).源文件下的-Dlg.cpp文件(以下简称.cpp文件)和资源文件下.rc文件里的Dialog\ ...

最新文章

  1. OpenGL 帧缓冲区
  2. android 单例模式详解,android开发设计模式之——单例模式详解
  3. python编程快速上手-----让繁琐工作自动化_每周一书《Python编程快速上手 让繁琐工作自动化》分享!...
  4. mysql视图_mysql之视图详解
  5. struts2 中文件的位置问题
  6. Max Sum Plus Plus HDU - 1024(动态规划求最大M子段和)
  7. Alt Gr or Shift
  8. linux内核的I2C子系统详解4——i2c-s3c2410.c文件中的adapter、algorithm
  9. 关于音游,除了节奏大师,你还熟悉哪些?
  10. CppCheck的使用
  11. 【八种基本分析方法】
  12. 【web安全】——文件包含漏洞
  13. 从零开始操作系统-07:APIC
  14. 前端开发学习及工具网站(持续更新)
  15. 北京朝阳一互联网公司被端,警方上门,23人被带走…这种开发千万别干!
  16. 【鸿蒙】鸿蒙操作系统应用开发入门级初体验
  17. [图像形态学操作]——腐蚀和膨胀、开闭运算、黑帽礼帽
  18. scrapy处理JSON API
  19. 前端下载流zip包,前端导出流压缩文件文件
  20. Android-短信验证码

热门文章

  1. python读取文件类型_Python使用filetype精确判断文件类型 (文件类型获取)
  2. 小白的爬虫--微博版
  3. webp和png的区别
  4. Consider revisiting the entries above or defining a bean of type *** that could not be found
  5. 【Python】for - else用法总结
  6. 二磺酸-吲哚菁绿-氨基|英文名:disulfo-ICG-amine,disulfo-ICG-NH2
  7. JavaScript笔记(全)
  8. Java ArrayList的遍历
  9. 【阿里云生活物联网架构师专题 ①】esp32 sdk 直连接入阿里云物联网平台,实现天猫精灵语音控制;
  10. Problem G: Array C