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. ... 
随机推荐
- 【Python基础】04_Python中的if判断语句
			1.if基本语法 if 要判断的条件: 条件成立时,要做的事情 ...... 注:代码缩进为一个 tab 键,或者4个空格 ——建议使用空格 if语句和缩进部分是一个完整的代码块 2. ... 
- MQTT协议探究(三)
			1 回顾与本次目标 1.1 回顾 主题通配符 主题语义和用法 WireShark进行抓包分析了报文 报文分析: SUBSCRIBE--订阅主题 SUBACK--订阅确认 UNNSUBSCRIBE--取 ... 
- python selenium5 模拟点击+拖动+按照指定相对坐标拖动 58同城验证码
			#!/usr/bin/python # -*- coding: UTF-8 -*- # @Time : 2019年12月9日11:41:08 # @Author : shenghao/10347899 ... 
- Django rest-framework框架-认证组件的简单实例
			第一版 : 自己写函数实现用户认证 #models from django.db import models #用户表 class UserInfo(models.Model): user_type_ ... 
- vi学习笔记
			dd 删除一行 de删除光标后面的单词 o向下插入一行 O向上插入一行 y复制 yy复制一行 ye复制光标后面的单词 p粘贴 == 代码自动布局 批量注释 ctrl + v , 输入大写I, 选 ... 
- Docker搭建Gitlab代码管理平台
			一.Gitlab的安装 宿主机环境: CentOS 7 docker docker-compose 1.查找镜像 docker search gitlab 2.拉取镜像 docker pull git ... 
- LeetCode:180.连续出现的数字
			题目链接:https://leetcode-cn.com/problems/consecutive-numbers/ 题目 编写一个 SQL 查询,查找所有至少连续出现三次的数字. +----+--- ... 
- LeetCode:1179.重新格式化部门表
			题目链接:https://leetcode-cn.com/problems/reformat-department-table/ 题目 部门表 Department: +--------------- ... 
- 【Distributed】大型网站高并发和高可用
			一.DNS域名解析 二.大型网站系统应有的特点 三.网站架构演变过程 3.1 传统架构 3.2 分布式架构 3.3 SOA架构 3.4 微服务架构 四.高并发设计原则 4.1 拆分系统 4.2 服务化 ... 
- 切记:永远不要在MySQL中使用UTF-8
			MySQL使用UTF-8 issue 问题描述:最近我遇到了一个bug,我试着通过Rails在以“utf8”编码的MariaDB中保存一个UTF-8字符串,然后出现了一个离奇的错误: Incorrec ... 
