JAVA实现四则运算的简单计算器
开发环境eclipse java neon.
今天用JAVA的swing界面程序设计制作了一个四则运算的简易计算器.代码以及截图如下:
computer.java:
/////////////////////////////////////////
//
//开发者:
//
//简介:实现四则运算的简易计算器
//
////////////////////////////////////////
/*
*用swing图形用户界面实现计算器的设计
*同时练习在线文档注释的使用方法
*
* @author linruier
* @version 1.0
* @since J2SE1.8
*/
import javax.swing.JButton;
import java.awt.Graphics;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JTextField;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import javax.swing.JPanel;
import java.awt.Font;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class computer extends JFrame
{
computer()
{
super("简易计算器");
Font f=new Font("黑体",30,30);
JTextField jt1=new JTextField(null);
JTextField jt2=new JTextField(null);
jt1.setFont(f);
jt2.setFont(f);
jt1.setHorizontalAlignment(JTextField.RIGHT);
jt2.setHorizontalAlignment(JTextField.RIGHT);
Container c=getContentPane();
c.setLayout(new FlowLayout(FlowLayout.LEFT,5,5));
c.add(jt1);
c.add(jt2);
jt1.setPreferredSize(new Dimension(370,70));
jt2.setPreferredSize(new Dimension(370,75));
jt1.setEditable(false);jt2.setEditable(false);
JButton jb[]=new JButton[16];
for(int j=0;j<16;j++)
{
jb[j]=new JButton();
jb[j].setBackground(Color.WHITE);
jb[j].setFocusable(false);
jb[j].setPreferredSize(new Dimension(90,90));
jb[j].setFont(f);
c.add(jb[j]);
}
this.setResizable(false);
//对各个按钮的名称赋值
jb[0].setText("+");jb[1].setText("-");jb[2].setText("*");jb[3].setText("/");
jb[4].setText("1");jb[5].setText("2");jb[6].setText("3");jb[7].setText("C");jb[7].setBackground(Color.ORANGE);
jb[8].setText("4");jb[9].setText("5");jb[10].setText("6");jb[11].setText("0");
jb[12].setText("7");jb[13].setText("8");jb[14].setText("9");jb[15].setText("=");
JButton Button_num[]={jb[4],jb[5],jb[6],jb[8],jb[9],jb[10],jb[11],jb[12],jb[13],jb[14]};
for(int i=0;i<Button_num.length;i++)
{
Button_num[i].addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JButton action_Button=(JButton)e.getSource();
jt2.setText(jt2.getText()+action_Button.getText());
}
}
);
}
for(int j=0;j<4;j++)
{
jb[j].addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String s=jt2.getText();
char ch=s.charAt(s.length()-1);
if(ch=='+'||ch=='-'||ch=='*'||ch=='/')((JButton)e.getSource()).setEnabled(false);
else
{
jt1.setText(jt2.getText());
jt2.setText(((JButton)e.getSource()).getText());
}
}
}
);
}
jb[7].addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jt1.setText(null);jt2.setText(null);
}
}
);
jb[15].addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
try
{
String Calculate_String=jt1.getText()+jt2.getText();
int result=calculation.result(Calculate_String);
jt1.setText(null);
jt2.setText(Integer.toString(result));
}
catch(ArithmeticException ex)
{
jt1.setText(null);jt2.setText("ERROR");
}
}
}
);
}
public static void main(String args[])
{
computer app=new computer();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.setSize(400,580);
app.setVisible(true);
}
}
//再定义一个计算类calculation.java:
public class calculation {
calculation(){};
boolean is_operator(char ch)
{
if(ch=='+'||ch=='-'||ch=='*'||ch=='/')return true;
else return false;
}
static int result(String s)
{
String ch[]={"+","-","*","/"};
int i=0;int index;
while(s.indexOf(ch[i])==-1&&i<4){i++;}
if(i==4)return -1;
else index=s.indexOf(ch[i]);
String s1=s.substring(0, index);
String s2=s.substring(index+1, s.length());
if(i==0)return Integer.parseInt(s1)+Integer.parseInt(s2);
if(i==1)return Integer.parseInt(s1)-Integer.parseInt(s2);
if(i==2)return Integer.parseInt(s1)*Integer.parseInt(s2);
if(i==3&&Integer.parseInt(s2)!=0)return Integer.parseInt(s1)/Integer.parseInt(s2);
else if(i==3&&Integer.parseInt(s2)==0){throw new ArithmeticException();}
return -1;
}
}
最后运行就可以实现一个十分简洁的小计算器:



JAVA实现四则运算的简单计算器的更多相关文章
- [Java.web]简单计算器
项目的 WebRoot 目录下的 calculator.jsp <%@ page language="java" import="java.util.*" ...
- 菜鸟学Android编程——简单计算器《一》
菜鸟瞎搞,高手莫进 本人菜鸟一枚,最近在学Android编程,网上看了一些视频教程,于是想着平时手机上的计算器应该很简单,自己何不尝试着做一个呢? 于是就冒冒失失的开撸了. 简单计算器嘛,功能当然很少 ...
- hiho #1332 : 简单计算器 栈+递归
#1332 : 简单计算器 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 编写一个程序可以完成基本的带括号的四则运算.其中除法(/)是整除,并且在负数除法时向0取整.( ...
- PAT 06-1 简单计算器
想看一般简单计算器实现的看客不好意思了,这不是你想要点东西,此处题设为“只能进行加减乘除”.“都是整数”.”优先级相同“和"从左到右".此题来自PAT(http://www.pat ...
- JavaWeb学习记录(二十)——Model1模式(javaBean+jsp)实现简单计算器案例
¨JSP技术提供了三个关于JavaBean组件的动作元素,即JSP标签,它们分别为: ¨<jsp:useBean>标签:用于在JSP页面中查找或实例化一个JavaBean组件. ¨< ...
- hdoj 1237 简单计算器
简单计算器 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- 简单计算器 (c语言课程设计)
可以实现简单的加减乘除四则运算 #include<stdio.h> #include<string.h> #define MAX 10100 int main() { int ...
- HDOJ 1237题 简单计算器
简单计算器 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...
- Ext实现简单计算器
以下是本人原创,如若转载和使用请注明转载地址.本博客信息切勿用于商业,可以个人使用,若喜欢我的博客,请关注我,谢谢!少帅的博客 使用Ext实现简单计算器,网页版实现 1.页面部分calculator. ...
随机推荐
- 剑指offer42:数组和一个数字S,输出两个数的乘积最小的
1 题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输出描述: 对应每个测试案例,输出两个数,小的先输出. ...
- php中的访问类型(public,private,protected)
类型的访问修饰符允许开发人员对类成员的访问进行限制,这是PHP5的新特性.但却是oop语言的一个好的特性.而且大多数的oop语言都已支持此特性.PHP5支持三种访问修饰符: public(公有的,默认 ...
- 数值分析-Legendre正交多项式 实现函数逼近
数值分析-Legendre正交多项式 实现函数逼近 2016年12月18日 21:27:54 冰三点水 阅读数 4057 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请 ...
- Rikka with Graph hdu 6090
题解:考虑贪心地一条一条边添加进去. 当 m \leq n-1m≤n−1 时,我们需要最小化距离为 nn 的点对数,所以肯定是连出一个大小为 m+1m+1 的联通块,剩下的点都是孤立点.在这个联通块中 ...
- Git 集成 Araxis Merge 作为比较和合并GUI工具的配置 参考自https://www.kancloud.cn/leviio/git/369125
Git 集成 Araxis Merge Win10下修改git全部配置文件方法Git 集成 Araxis Merge 作为比较和合并GUI工具的配置 那global对应的 ,gitconfig文件在哪 ...
- Django rest-framework框架-认证组件的简单实例
第一版 : 自己写函数实现用户认证 #models from django.db import models #用户表 class UserInfo(models.Model): user_type_ ...
- php 限制标题长度,将一个中文转换成一个字符
点击链接加入群[php/web 学习课堂]:https://jq.qq.com/?_wv=1027&k=5UJ9vEa 欢迎大家加入,一起讨论学习 玩这个功能的时候,我们要注意一点,我们是用中 ...
- 使用LEANGOO泳道
转自:https://www.leangoo.com/leangoo_guide/leangoo_yongdao.html 列表使用纵向的纬度管理卡片,通常代表卡片的工作的不同阶段,或者任务的状态.泳 ...
- 使用ABAP批量下载Markdown源文件里的图片到本地
执行我github里的这个report: 选中一段markdown文档,ctrl C: 然后直接执行report: 执行完毕: 所有文件都下载到本地文件夹: 这个report使用到的工具类:zcl_c ...
- eclipse创建Maven Web项目以及无法修改Project Facets
1.在eclipse中创建maven项目,在菜单栏的:File-->New-->other中,搜索maven则会出现Maven Project; 2.点击next继续; 3.点击next继 ...