java 学习 ——计算器小程序
简易计算器小程序代码:
package jisuanqi; //声明须要插入的包
import java.awt.*;
import java.lang.Object;
import java.lang.String;
import javax.swing.*;
import java.awt.event.*;
import java.awt.TextComponent;
//声明一个主类jisuanqi。继续窗体类Frame
public class jisuanqi extends Frame{ //声明16个Button
Button anjian1, anjian2, anjian3, anjian4, anjian5, anjian6, anjian7, anjian8, anjian9, anjian10, anjian11, anjian12, anjian13, anjian14,anjian15,anjian16;
//声明文本框。用于接收数字和计算
TextField numText;
//声明面板容器,用于存放各种button
Panel anjianPanel;
//构造方法初始化button
jisuanqi(String title){ super(title);
anjian1=new Button("0");
anjian2=new Button("1");
anjian3=new Button("2");
anjian4=new Button("3");
anjian5=new Button("4");
anjian6=new Button("5");
anjian7=new Button("6");
anjian8=new Button("7");
anjian9=new Button("8");
anjian10=new Button("9");
anjian11=new Button("+");
anjian12=new Button("-");
anjian13=new Button("*");
anjian14=new Button("/");
anjian15=new Button("=");
anjian16=new Button("清空");
//初始化文本框。将文本的值设置为“0”
numText=new TextField("0");
//实例化面板;
anjianPanel=new Panel();
//设置button
anjianPanel.setLayout(new FlowLayout());
//实例化button
anjian1.addActionListener(new anjianAction());
anjian2.addActionListener(new anjianAction());
anjian3.addActionListener(new anjianAction());
anjian4.addActionListener(new anjianAction());
anjian5.addActionListener(new anjianAction());
anjian6.addActionListener(new anjianAction());
anjian7.addActionListener(new anjianAction());
anjian8.addActionListener(new anjianAction());
anjian9.addActionListener(new anjianAction());
anjian10.addActionListener(new anjianAction());
anjian11.addActionListener(new anjianAction());
anjian12.addActionListener(new anjianAction());
anjian13.addActionListener(new anjianAction());
anjian14.addActionListener(new anjianAction());
anjian15.addActionListener(new anjianAction());
anjian16.addActionListener(new anjianAction());
//将各个button加入到面板容器中
anjianPanel.add(anjian1);
anjianPanel.add(anjian2);
anjianPanel.add(anjian3);
anjianPanel.add(anjian4);
anjianPanel.add(anjian5);
anjianPanel.add(anjian6);
anjianPanel.add(anjian7);
anjianPanel.add(anjian8);
anjianPanel.add(anjian9);
anjianPanel.add(anjian10);
anjianPanel.add(anjian11);
anjianPanel.add(anjian12);
anjianPanel.add(anjian13);
anjianPanel.add(anjian14);
anjianPanel.add(anjian15);
anjianPanel.add(anjian16);
//为文本框加入事件
numText.addTextListener(new TextListener() { public void textValueChanged(TextEvent e) { if(numText.getText().indexOf("0",0)!=-1){ numText.getText().replace("0","");
}
}
}); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0);
}
});
//将文本框放置在顶部
add(numText,BorderLayout.NORTH);
//加入button
add(anjianPanel,BorderLayout.CENTER);
//设置文本框属性
numText.setEditable(false);
}
//没有不论什么操作的值
int num=0;
//numStr是文本框的值
String numStr=null;
Boolean chinage=false;
//设置button
public int check(){
numStr = numText.getText();
if (numStr.indexOf("+") == 0) { numStr = numStr.replace('+', '0');
num = num + Integer.parseInt(numStr);
return num;
}
else if (numStr.indexOf("-") != -1) { numStr = numStr.replace("-", "0");
num = num - Integer.parseInt(numStr);
return num;
}
else if(numStr.indexOf("*")!=-1){ numStr=numStr.replace('*','0');
num = num * Integer.parseInt(numStr);
return num;
}
else if(numStr.indexOf("/")!=-1){ numStr=numStr.replace('/','0');
try{ num = num / Integer.parseInt(numStr);
return num;
}
catch(ArithmeticException e){ JOptionPane.showMessageDialog(null,"除数不能为空!","消息!",1);
return num;
}
}
else return num=Integer.parseInt(numStr);
}
//创建事件
private class anjianAction implements ActionListener{ public void actionPerformed(ActionEvent event){ if(event.getActionCommand()=="0"){ if(!numText.getText().equals("0"))
numText.setText(numText.getText()+0);
} if(event.getActionCommand()=="1")
numText.setText(numText.getText()+1);
if(event.getActionCommand()=="2")
numText.setText(numText.getText()+2);
if(event.getActionCommand()=="3")
numText.setText(numText.getText()+3);
if(event.getActionCommand()=="4")
numText.setText(numText.getText()+4);
if(event.getActionCommand()=="5")
numText.setText(numText.getText()+5);
if(event.getActionCommand()=="6")
numText.setText(numText.getText()+6);
if(event.getActionCommand()=="7")
numText.setText(numText.getText()+7);
if(event.getActionCommand()=="8")
numText.setText(numText.getText()+8);
if(event.getActionCommand()=="9")
numText.setText(numText.getText()+9); if(event.getActionCommand()=="清空"){ numText.setText("0");
num=0;
}
if(event.getActionCommand()=="+"){ //调用check();方法
check();
numText.setText("+");
}
if(event.getActionCommand()=="-"){ check();
numText.setText("-");
}
if(event.getActionCommand()=="*"){ check();
numText.setText("*");
}
if(event.getActionCommand()=="/"){ if(numStr=="/0"){ JOptionPane.showMessageDialog(null,"除数不能为空!","消息!",1);
}
check();
numText.setText("/");
}
if(event.getActionCommand()=="="){ check();
numText.setText(""+num);
}
}
}
public static void main(String[] args){ jisuanqi jisuanqi=new jisuanqi("计算器");
jisuanqi.setBackground(Color.CYAN);
jisuanqi.setSize(300,280);
//设置窗体大小
jisuanqi.setLocation(550,350);
//设置界面属性
jisuanqi.setVisible(true);
}
}
java 学习 ——计算器小程序的更多相关文章
- 13本热门书籍免费送!(Python、SpingBoot、Entity Framework、Ionic、MySQL、深度学习、小程序开发等)
七月第一周,网易云社区联合清华大学出版社为大家送出13本数据分析以及移动开发的书籍(Python.SpingBoot.Entity Framework.Ionic.MySQL.深度学习.小程序开发等) ...
- 打造一款 刷Java 知识的小程序(二)
学习Java的神器已上线,面向广大Java爱好者! 之前写的一篇:打造一款 刷Java 知识的小程序(一) 一.第二版做了什么? 第一版小程序只具有初级展示功能,知识点都是hardcode在代码里面的 ...
- Java 后端微信小程序支付demo (网上说的坑里面基本上都有)
Java 后端微信小程序支付 一.遇到的问题 1. 商户号该产品权限未开通,请前往商户平台>产品中心检查后重试 2.签名错误 3.已经调起微信统一下单接口,可以拿到预支付ID,但是前端支付的时候 ...
- 利用Python代码编写计算器小程序
import tkinter import tkinter.messagebox import math class JSQ: def __init__(self): #创建主界面 self.root ...
- 与大家分享学习微信小程序开发的一些心得
因为我也才开始学习微信小程序不久,下文也是现在的一时之言,大家有不同的想法也可以在评论里共同交流讨论,希望文章能给大家提供一点点帮助. 最近接触到了一些前端框架,像Vue.js,React,发现小程序 ...
- JAVA定时关机小程序
大一刚学java时候做的小程序.由于当时迅雷还没有下载完成关机,晚上要下很多学习资料.只有自己算时间然后通过shutdown命令设置时间关机. 当时通过shutwodn命令,想到能否通过java做一个 ...
- 「小程序JAVA实战」小程序视图之条件判断(15)
转自:https://idig8.com/2018/08/09/xiaochengxu-chuji-15/ 小程序里面也是有条件判断的,我相信大家在开发java if和jstl c:if c:when ...
- 【Java】一个小程序,计算它包含的代码所需的耗时
写一个小程序,用来计算它包含的代码所需的耗时.虽然简单,测试代码是否耗时还是有点用的,不用重新写嘛~ import java.util.Date; import java.util.concurren ...
- 一个C#程序员学习微信小程序路由的笔记
路由大家应该都知道,在微信小程序也是有的,毕竟它是单页面应用程序.在WeChat中有五种跳转方式,分别是wx.switchTab.wx.reLaunch.wx.redirectTo.wx.naviga ...
随机推荐
- Vnstat: 简单实用的网络流量统计工具
官方主页: http://humdi.net/vnstat # Ubuntu 安装: (其本上其它发行版的包管理程序中也都包含了这款软件,请自行安装) sudo apt-get install vns ...
- struts2笔记08-初识ActionSupport
1.配置一个最简单的action <action name="simple-action"> <result>/simple.jsp</result& ...
- 修改 tomcat 内存
在Jetty 的VM参数中设置: -Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m 在tomcat运行环境中设置: window环境 ...
- 转:CSS3 Flexbox 布局介绍
转:CSS3 Flexbox 布局介绍 Flexbox是一个用于页面布局的全新CSS3模块功能.它可以把列表放在同一个方向(从左到右或从上到下排列),并且让这些列表能延伸到占用可用的空间.较为复杂的布 ...
- 计算机世界的道(C/ASM)生一(OS),一生二(API),二生万象(MFC/COM)——学包装技术的程序员将来会损失比较大,因为不了解本质,一旦包装过时就会被淘汰
道生一,一生二,二生万象.OO的思想就是抽象,万象归宗,化繁为简.99%的程序员使用OO,或者所谓的类库的目的就是好用,不必了解内部实现就可以直接达到所期望的结果.这时一种生产力的进步,一种流水线式半 ...
- perl 解json数组
<pre name="code" class="cpp">http://11.36.10.82:4000/api/bus?bus=307&f ...
- c++ 关于类构造函数的初始化列表
除了性能问题之外,有些时场合初始化列表是不可或缺的,以下几种情况时必须使用初始化列表 常量成员,因为常量只能初始化不能赋值,所以必须放在初始化列表里面 引用类型,引用必须在定义的时候初始化,并且不能重 ...
- [虚拟化/云] kvm的架构分析
预备知识 1. 客户机物理页框到宿主机虚拟地址转换 http://blog.csdn.net/zhuriyuxiao/article/details/8968781 http://www.tuicoo ...
- current imporant Posts
CRUD是指在做计算处理时的增加(Create).读取(Retrieve)(重新得到数据).更新(Update)和删除(Delete) http://www.centos.org/docs/5/htm ...
- c# 搭建服务端 传输协议(2)
在网络的数据传输中,要将需要传输的数据转换为二进制数据后传输,才能被服务端正常的接收,socket传输中,接收到的数据都会被放入byte[]中存放,所以在数据发送前,对二进制的数组进行有规律的排序,才 ...