简易计算器小程序代码:

  1. package jisuanqi;
  2.  
  3. //声明须要插入的包
  4. import java.awt.*;
  5. import java.lang.Object;
  6. import java.lang.String;
  7. import javax.swing.*;
  8. import java.awt.event.*;
  9. import java.awt.TextComponent;
  10. //声明一个主类jisuanqi。继续窗体类Frame
  11. public class jisuanqi extends Frame{
  12.  
  13. //声明16个Button
  14. Button anjian1, anjian2, anjian3, anjian4, anjian5, anjian6, anjian7, anjian8, anjian9, anjian10, anjian11, anjian12, anjian13, anjian14,anjian15,anjian16;
  15. //声明文本框。用于接收数字和计算
  16. TextField numText;
  17. //声明面板容器,用于存放各种button
  18. Panel anjianPanel;
  19. //构造方法初始化button
  20. jisuanqi(String title){
  21.  
  22. super(title);
  23. anjian1=new Button("0");
  24. anjian2=new Button("1");
  25. anjian3=new Button("2");
  26. anjian4=new Button("3");
  27. anjian5=new Button("4");
  28. anjian6=new Button("5");
  29. anjian7=new Button("6");
  30. anjian8=new Button("7");
  31. anjian9=new Button("8");
  32. anjian10=new Button("9");
  33. anjian11=new Button("+");
  34. anjian12=new Button("-");
  35. anjian13=new Button("*");
  36. anjian14=new Button("/");
  37. anjian15=new Button("=");
  38. anjian16=new Button("清空");
  39. //初始化文本框。将文本的值设置为“0”
  40. numText=new TextField("0");
  41. //实例化面板;
  42. anjianPanel=new Panel();
  43. //设置button
  44. anjianPanel.setLayout(new FlowLayout());
  45. //实例化button
  46. anjian1.addActionListener(new anjianAction());
  47. anjian2.addActionListener(new anjianAction());
  48. anjian3.addActionListener(new anjianAction());
  49. anjian4.addActionListener(new anjianAction());
  50. anjian5.addActionListener(new anjianAction());
  51. anjian6.addActionListener(new anjianAction());
  52. anjian7.addActionListener(new anjianAction());
  53. anjian8.addActionListener(new anjianAction());
  54. anjian9.addActionListener(new anjianAction());
  55. anjian10.addActionListener(new anjianAction());
  56. anjian11.addActionListener(new anjianAction());
  57. anjian12.addActionListener(new anjianAction());
  58. anjian13.addActionListener(new anjianAction());
  59. anjian14.addActionListener(new anjianAction());
  60. anjian15.addActionListener(new anjianAction());
  61. anjian16.addActionListener(new anjianAction());
  62. //将各个button加入到面板容器中
  63. anjianPanel.add(anjian1);
  64. anjianPanel.add(anjian2);
  65. anjianPanel.add(anjian3);
  66. anjianPanel.add(anjian4);
  67. anjianPanel.add(anjian5);
  68. anjianPanel.add(anjian6);
  69. anjianPanel.add(anjian7);
  70. anjianPanel.add(anjian8);
  71. anjianPanel.add(anjian9);
  72. anjianPanel.add(anjian10);
  73. anjianPanel.add(anjian11);
  74. anjianPanel.add(anjian12);
  75. anjianPanel.add(anjian13);
  76. anjianPanel.add(anjian14);
  77. anjianPanel.add(anjian15);
  78. anjianPanel.add(anjian16);
  79. //为文本框加入事件
  80. numText.addTextListener(new TextListener() {
  81.  
  82. public void textValueChanged(TextEvent e) {
  83.  
  84. if(numText.getText().indexOf("0",0)!=-1){
  85.  
  86. numText.getText().replace("0","");
  87. }
  88. }
  89. });
  90.  
  91. addWindowListener(new WindowAdapter() {
  92.  
  93. public void windowClosing(WindowEvent e) {
  94.  
  95. System.exit(0);
  96. }
  97. });
  98. //将文本框放置在顶部
  99. add(numText,BorderLayout.NORTH);
  100. //加入button
  101. add(anjianPanel,BorderLayout.CENTER);
  102. //设置文本框属性
  103. numText.setEditable(false);
  104. }
  105. //没有不论什么操作的值
  106. int num=0;
  107. //numStr是文本框的值
  108. String numStr=null;
  109. Boolean chinage=false;
  110. //设置button
  111. public int check(){
  112. numStr = numText.getText();
  113. if (numStr.indexOf("+") == 0) {
  114.  
  115. numStr = numStr.replace('+', '0');
  116. num = num + Integer.parseInt(numStr);
  117. return num;
  118. }
  119. else if (numStr.indexOf("-") != -1) {
  120.  
  121. numStr = numStr.replace("-", "0");
  122. num = num - Integer.parseInt(numStr);
  123. return num;
  124. }
  125. else if(numStr.indexOf("*")!=-1){
  126.  
  127. numStr=numStr.replace('*','0');
  128. num = num * Integer.parseInt(numStr);
  129. return num;
  130. }
  131. else if(numStr.indexOf("/")!=-1){
  132.  
  133. numStr=numStr.replace('/','0');
  134. try{
  135.  
  136. num = num / Integer.parseInt(numStr);
  137. return num;
  138. }
  139. catch(ArithmeticException e){
  140.  
  141. JOptionPane.showMessageDialog(null,"除数不能为空!","消息!",1);
  142. return num;
  143. }
  144. }
  145. else return num=Integer.parseInt(numStr);
  146. }
  147. //创建事件
  148. private class anjianAction implements ActionListener{
  149.  
  150. public void actionPerformed(ActionEvent event){
  151.  
  152. if(event.getActionCommand()=="0"){
  153.  
  154. if(!numText.getText().equals("0"))
  155. numText.setText(numText.getText()+0);
  156. }
  157.  
  158. if(event.getActionCommand()=="1")
  159. numText.setText(numText.getText()+1);
  160. if(event.getActionCommand()=="2")
  161. numText.setText(numText.getText()+2);
  162. if(event.getActionCommand()=="3")
  163. numText.setText(numText.getText()+3);
  164. if(event.getActionCommand()=="4")
  165. numText.setText(numText.getText()+4);
  166. if(event.getActionCommand()=="5")
  167. numText.setText(numText.getText()+5);
  168. if(event.getActionCommand()=="6")
  169. numText.setText(numText.getText()+6);
  170. if(event.getActionCommand()=="7")
  171. numText.setText(numText.getText()+7);
  172. if(event.getActionCommand()=="8")
  173. numText.setText(numText.getText()+8);
  174. if(event.getActionCommand()=="9")
  175. numText.setText(numText.getText()+9);
  176.  
  177. if(event.getActionCommand()=="清空"){
  178.  
  179. numText.setText("0");
  180. num=0;
  181. }
  182. if(event.getActionCommand()=="+"){
  183.  
  184. //调用check();方法
  185. check();
  186. numText.setText("+");
  187. }
  188. if(event.getActionCommand()=="-"){
  189.  
  190. check();
  191. numText.setText("-");
  192. }
  193. if(event.getActionCommand()=="*"){
  194.  
  195. check();
  196. numText.setText("*");
  197. }
  198. if(event.getActionCommand()=="/"){
  199.  
  200. if(numStr=="/0"){
  201.  
  202. JOptionPane.showMessageDialog(null,"除数不能为空!","消息!",1);
  203. }
  204. check();
  205. numText.setText("/");
  206. }
  207. if(event.getActionCommand()=="="){
  208.  
  209. check();
  210. numText.setText(""+num);
  211. }
  212. }
  213. }
  214. public static void main(String[] args){
  215.  
  216. jisuanqi jisuanqi=new jisuanqi("计算器");
  217. jisuanqi.setBackground(Color.CYAN);
  218. jisuanqi.setSize(300,280);
  219. //设置窗体大小
  220. jisuanqi.setLocation(550,350);
  221. //设置界面属性
  222. jisuanqi.setVisible(true);
  223. }
  224. }

java 学习 ——计算器小程序的更多相关文章

  1. 13本热门书籍免费送!(Python、SpingBoot、Entity Framework、Ionic、MySQL、深度学习、小程序开发等)

    七月第一周,网易云社区联合清华大学出版社为大家送出13本数据分析以及移动开发的书籍(Python.SpingBoot.Entity Framework.Ionic.MySQL.深度学习.小程序开发等) ...

  2. 打造一款 刷Java 知识的小程序(二)

    学习Java的神器已上线,面向广大Java爱好者! 之前写的一篇:打造一款 刷Java 知识的小程序(一) 一.第二版做了什么? 第一版小程序只具有初级展示功能,知识点都是hardcode在代码里面的 ...

  3. Java 后端微信小程序支付demo (网上说的坑里面基本上都有)

    Java 后端微信小程序支付 一.遇到的问题 1. 商户号该产品权限未开通,请前往商户平台>产品中心检查后重试 2.签名错误 3.已经调起微信统一下单接口,可以拿到预支付ID,但是前端支付的时候 ...

  4. 利用Python代码编写计算器小程序

    import tkinter import tkinter.messagebox import math class JSQ: def __init__(self): #创建主界面 self.root ...

  5. 与大家分享学习微信小程序开发的一些心得

    因为我也才开始学习微信小程序不久,下文也是现在的一时之言,大家有不同的想法也可以在评论里共同交流讨论,希望文章能给大家提供一点点帮助. 最近接触到了一些前端框架,像Vue.js,React,发现小程序 ...

  6. JAVA定时关机小程序

    大一刚学java时候做的小程序.由于当时迅雷还没有下载完成关机,晚上要下很多学习资料.只有自己算时间然后通过shutdown命令设置时间关机. 当时通过shutwodn命令,想到能否通过java做一个 ...

  7. 「小程序JAVA实战」小程序视图之条件判断(15)

    转自:https://idig8.com/2018/08/09/xiaochengxu-chuji-15/ 小程序里面也是有条件判断的,我相信大家在开发java if和jstl c:if c:when ...

  8. 【Java】一个小程序,计算它包含的代码所需的耗时

    写一个小程序,用来计算它包含的代码所需的耗时.虽然简单,测试代码是否耗时还是有点用的,不用重新写嘛~ import java.util.Date; import java.util.concurren ...

  9. 一个C#程序员学习微信小程序路由的笔记

    路由大家应该都知道,在微信小程序也是有的,毕竟它是单页面应用程序.在WeChat中有五种跳转方式,分别是wx.switchTab.wx.reLaunch.wx.redirectTo.wx.naviga ...

随机推荐

  1. 从零开始PHP学习 - 第一天

    写这个系列文章主要是为了督促自己  每天定时 定量消化一些知识! 同时也为了让需要的人 学到点啥~! 本人技术实在不高!本文中可能会有错误!希望大家发现后能提醒一下我和大家! 偷偷说下 本教程最后的目 ...

  2. asp.net内置对象session和cookie

    1.各个机器的session对象不同,不同浏览器之间不通用(换个浏览器,是个新的session). 2.session状态对象起始于网页打开,终止于网页关闭,生命周期有限. 3.关闭浏览器/超时的情况 ...

  3. 21. 无法执行该操作,因为链接服务器”Server_202”的 OLE DB 访问接口 “SQLNCLI10″ 无法启动分布式事务”

    无法执行该操作,因为链接服务器”Server_202”的 OLE DB 访问接口 “SQLNCLI10″ 无法启动分布式事务” 原因:调用存储过程的方式有问题,必须用JDBC方式调用存储过程才可以正常 ...

  4. asp.net的Master-Content结构简介

    在一个网站中,页面应该具有统一的布局方式,这些统一的布局内同将显示到所有的页面中,它提供了用户最基本的功能.Asp.Net2.0通过Master-Content结构提供了这样统一页面管理的机制. Ma ...

  5. 修改SlidingMenu,使其能够完美运行

    今天想给项目添加一个侧边栏的效果,使用到了https://github.com/jfeinstein10/SlidingMenu这个开源项目.项目本身可以通过github下载.此项目同时又依赖于一个名 ...

  6. Tempo 2.0

    Tempo 2.0 Tempo is an easy, intuitive JavaScript rendering engine that enables you to craft data tem ...

  7. #pragma anon_unions, #pragma no_anon_unions

    #pragma anon_unions, #pragma no_anon_unions 这些编译指示启用和禁用对匿名结构和联合的支持. 缺省设置 缺省值为 #pragma no_anon_unions ...

  8. Autoconf/Automake工具简介

    在linux下编程的时候,有时候工程项目很大,文件比较多,此时需要使用自动创建Makefile文件功能.也就是使用Autoconf/Automake工具自动生成Makefile,为编译程序带来了方便, ...

  9. Java面试题之四

     十六.运行时异常与一般异常有何异同 Java提供了两类主要的异常:runtime exception和checked exception. 1.checked exception:这种异常也就是我们 ...

  10. CXF 的IP拦截

    非常久没有写技术文档了,今天 记录下Webserver的Ip限制吧 需求是:webserver接口能在内网訪问,可是測试平台的webserver要能够在外网訪问,这样就有了一点差别, 这个实现的比較简 ...