Java用awt编写计算器(只有加减乘除)

结果演示:

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;public class CalFrame extends Frame {public TextField txt;//文字框文本public boolean flag=false;//判断是否切换文字框内容public int numflag=0;//判断是否为第一次输入和计算public String operator="";//保存计算符号public double num1;//保存前一次运算结果或第一次输入的数据public double num2;//保存刚输入的数据public CalFrame(String title) {super(title);init();//引入名字并启动计算器}private void init() {this.setBounds(100, 100, 160, 220);//计算机位置和大小txt=new TextField();this.add(txt, BorderLayout.NORTH);//利用麻将布局将文本框位置放于最上方Panel panel=new Panel();GridLayout gl=new GridLayout(4,4,1,1);//分割面板panel.setLayout(gl);this.add(panel);//设置frame布局为GridLayoutButton[] btn= {new Button("7"),new Button("8"),new Button("9"),new Button("+"),new Button("4"),new Button("5"),new Button("6"),new Button("-"),new Button("1"),new Button("2"),new Button("3"),new Button("*"),new Button("0"),new Button("."),new Button("="),new Button("/")};for(int i=0;i<btn.length;i++) {panel.add(btn[i]);//将个按钮加入面板}for(int i=0;i<btn.length;i++) {//判断是数字还是符号并运用相应方法if(i!=3&&i!=7&&i!=11&&i!=15&&i!=14) {btn[i].addMouseListener(new NumberButtonListener(this));}else {btn[i].addMouseListener(new OperatorButtonListener(this));}}this.setVisible(true);this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {CalFrame.this.dispose();} //关闭计算器});}
}
import java.awt.Button;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;public class NumberButtonListener extends MouseAdapter {private CalFrame frame;public NumberButtonListener(CalFrame frame) {this.frame = frame;}@Overridepublic void mouseClicked(MouseEvent e) {Button btn=(Button)e.getSource();String num=btn.getLabel();if(frame.numflag==0) {//判断是否为第一次输入frame.numflag=1;}if(!frame.flag) {frame.txt.setText(num);frame.flag=true;//便于文字框内容的切换}else {frame.txt.setText(frame.txt.getText()+num);//便于二位数等数的输入}}}
import java.awt.Button;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;public class OperatorButtonListener extends MouseAdapter {private CalFrame frame;public OperatorButtonListener(CalFrame frame) {this.frame = frame;}@Overridepublic void mouseClicked(MouseEvent e) {frame.flag=false;//使下一次输入数字时文字框内容切换if(frame.numflag==1) {//判断是否为第一次计算frame.numflag=2;String num1Str=frame.txt.getText();frame.num1=Double.parseDouble(num1Str);Button btn=(Button)e.getSource();frame.operator=btn.getLabel();}else if(frame.numflag==2) {String num2Str=frame.txt.getText();frame.num2=Double.parseDouble(num2Str);if("+".equals(frame.operator)) {frame.num1=frame.num1+frame.num2;}else if("-".equals(frame.operator)) {frame.num1=frame.num1-frame.num2;}else if("*".equals(frame.operator)) {frame.num1=frame.num1*frame.num2;}else if("/".equals(frame.operator)) {frame.num1=frame.num1/frame.num2;}//判断符号并进行对应的运算frame.num2=0;Button btn=(Button)e.getSource();frame.operator=btn.getLabel();if("=".equals(frame.operator)) {//判断最后的符号是否为“=”frame.txt.setText(frame.num1+"");//输出结果frame.numflag=0;frame.flag=false;//数据清零}}}}
public class Counter {public static void main(String[] args) {new CalFrame("计算器");//启动计算器}
}

Java用awt编写计算器(只有加减乘除)相关推荐

  1. java实现复制粘贴的计算器_软帝学院教你用java编写计算器(三)

    教你用java编写计算器(三) import java.awt.Color; import java.awt.Dimension; import java.awt.event.ActionListen ...

  2. Java制作一个盒子程序_编写一个简单的Java程序,模拟计算器的功能。

    提问:编写一个简单的Java程序,模拟计算器的功能. 网友回答: 程序参考: import java.awt.*; import java.awt.event.ActionEvent; import ...

  3. Java语言编写计算器

    本文讲述Java图形用户界面的编写,重点讲述一个简单计算器的实现. 文中程序的运行环境为Windows10 ,编译环境为MyEclipse 8.5. 一个简单的计算器主要实现一下功能和要求: 一:输入 ...

  4. 用java编写计算器_用Java编写一个简单的计算器

    1.使用记事本或eclipse等编程工具,建立一个图形界面应用程序. 2.程序完成简单的四则计算功能 3.用户可以在名为Number1和Number2的文本输入框中输入2个操作数,然后点击下面的4个按 ...

  5. java awt 简单计算器,JAVA Swing 开发简易计算器(上)

    开发一个简易的计算器我们主要分为两大部分:图形界面设计与具体功能实现.这篇文章讲图形界面设计,下篇讲具体功能实现. 代码下载:https://github.com/taifus/Java_Calcul ...

  6. JAVA图形化界面计算器

    优秀的代码是它自己最好的文档.当你考虑要添加一个注释时,问问自己,"如何能改进这段代码,以让它不需要注释 我是一名在校大学生,这学期刚刚开JAVA课,老师上周留作业让做个计算器,最近一直在搞 ...

  7. 用java实现简单的计算器(基于Calculator)

    关于Calculator的实现和安装,请参见大神博客:https://www.cnblogs.com/woider/p/5331391.html 转载请注明出处 我只是在次基础上,借了一下" ...

  8. Java课程设计-小学生计算器

    功能 源码.经验交流QQ群:613879714,有问题QQ群提问,这里不能及时回复 1.功能 小学生计算器可以进行两位数的加减乘除运算 2.演示 B站演示视频链接 java课程设计-小学生计算器 3. ...

  9. 手把手教你用Java的swing制作计算器

    其实学到Java这一块很多人会觉得很复杂实际上学会使用方法其实很简单 话不多说直接贴源码,如下: package cn.sjy.calculator;import javax.swing.*; imp ...

最新文章

  1. 数据智能是大数据的未来
  2. 12 生成器和生成器函数以及各种推导式
  3. 怎样给RCP程序添加依赖的JAR包
  4. bitmap数据格式
  5. apache 虚拟主机如何配置
  6. mysql 的select语句_MYSQL SELECT语句新手
  7. 1.15 Java 9新增的不可变集合
  8. python的所有数据类型都可以相互转化吗_Python python 数据类型的相互转换
  9. Android中实现应用的静默安装
  10. C#求空间两点之间的距离
  11. select ...as_一起使用.select .map和.reduce方法可充分利用Ruby
  12. 【Linux】文件操作系统调用
  13. leetcode1070. 产品销售分析 III(SQL)
  14. python选择某一行_Python常用语法有哪些 如何快速入门Python开发
  15. 今年颜宁在《自然》发表三篇论文仍归清华,网友:可惜以后不是了
  16. 可缩放的思维导图_成就销售王者的23大流程,配思维导图,可直接学习收藏
  17. python 【第一篇】初识python
  18. CollabNet Subversion Edge 安裝筆記 (1):基本安裝設定篇
  19. JavaScript—常见设计模式整理(27)
  20. python做生物信息学分析_Python从零开始第五章生物信息学①提取差异基因

热门文章

  1. Advances in Graph Neural Networks笔记4:Heterogeneous Graph Neural Networks
  2. 网易有道 IP地址、手机号码归属地和身份证 查询接口API
  3. 【五音疗疾】百病始于气而止于音
  4. 百度云的“链接不存在或失效”怎么破?
  5. iPhone手机连接电脑无反应,是什么原因?
  6. 微信公众号的绑定域名详解
  7. matlab mle用法,MATLAB中的MLE问题
  8. 商业图表案例10.2-重庆的日照
  9. 【DockerCE】Docker-CE 23.0.3正式版发布
  10. 【CS224图机器学习】task1 图机器学习导论