Java编写的一个简单计算器,本人还比较菜,只能这样了,有点代码冗余,不能连续计算。

import javax.swing.*;

import java.awt.*;
import java.awt.event.*;
public class calculate extends JFrame {
JButton[] b = new JButton[10];
JPanel panel1 = new JPanel(); // 实例化面板
JPanel panel2 = new JPanel();
JPanel panel3 = new JPanel();
JTextField answer=new JTextField(10);
JButton clear=new JButton("清除");
JButton equal=new JButton("=");
JButton point=new JButton(".");
JButton plus=new JButton("+");
JButton minus=new JButton("-");
JButton multi=new JButton("×");
JButton division=new JButton("÷");
String foreText=new String("");
String backText=new String("");
String s=new String();
String s1=new String();
Object op=new String();
Object o=new String();
double d, dFore, dBack;
int i=9;
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame calculator =new calculate();
calculator.setVisible(true); }
public calculate(){
setTitle("计算器");
setSize(300,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();//获取屏幕分辨率
setLocation(screenSize.width/4,screenSize.height/4);//位置
for ( i =9; i>=0; i--) {
b[i] = new JButton(Integer.toString(i));// 实例化数字按钮
b[i].addActionListener(new MyListener1());
panel2.add(b[i]); // 增加按钮到面板 } setLayout(new FlowLayout()); // 设置布局管理器
panel1.setLayout(new FlowLayout());
panel2.setLayout(new GridLayout(4,3,10,8));
panel3.setLayout(new GridLayout(4,1,8,12));
clear.setFont(new Font("隶书",Font.PLAIN,15));
clear.setForeground(Color.RED);
clear.addActionListener(new MyListener1());
equal.setForeground(Color.RED);
equal.addActionListener(new MyListener1());
plus.setForeground(Color.RED);
plus.addActionListener(new MyListener1());
minus.setForeground(Color.RED);
minus.addActionListener(new MyListener1());
multi.setForeground(Color.RED);
multi.addActionListener(new MyListener1());
division.setForeground(Color.RED);
division.addActionListener(new MyListener1());
equal.setFont(new Font("隶书",Font.PLAIN,20));
plus.setFont(new Font("隶书",Font.PLAIN,18));
minus.setFont(new Font("隶书",Font.PLAIN,18));
multi.setFont(new Font("隶书",Font.PLAIN,18));
division.setFont(new Font("隶书",Font.PLAIN,18));
point.addActionListener(new MyListener1());
panel1.add(answer);
panel1.add(clear);
panel2.add(point);
panel2.add(equal);
panel3.add(plus);
panel3.add(minus);
panel3.add(multi);
panel3.add(division);
add(panel1);
add(panel2);
add(panel3);
} class MyListener1 implements ActionListener{
public void actionPerformed(ActionEvent e){ for(int i=0;i<=9;i++) {
if(e.getSource()==b[i]||e.getSource()==point){
answer.setText("");
if(e.getSource()==point){ s=foreText+".";
answer.setText(s);
}else{
if(s!=""){
answer.setText(s+b[i].getText());
foreText=s+b[i].getText();//此处应当修改,
}else{
answer.setText(foreText+b[i].getText());
foreText=foreText+b[i].getText();
}
}
}
}
if(e.getSource()==clear){
foreText="";
s="";
answer.setText("");
}
if(e.getSource()==plus||e.getSource()==minus||e.getSource()==multi||e.getSource()==division){
dFore=Double.parseDouble(foreText);
s="";
foreText="";
answer.setText("");
op=e.getSource();
}
if(e.getSource()==equal){
dBack=Double.parseDouble(foreText);
foreText="";
answer.setText("");
if(op==plus){
d=dFore+dBack;
}
if(op==minus){
d=dFore-dBack;
}
if(op==multi){
d=dFore*dBack;
}
if(op==division){
d=dFore/dBack;
}
answer.setText(""+d);
}
}
}
}

运行截图

Java语言编写计算器(简单的计算器)的更多相关文章

  1. 用java语言编写的简单二叉树

    package com.cjonline.foundation.evisa; public class TestTree { private int data=-1; private TestTree ...

  2. 第二次作业利用java语言编写计算器进行四则运算

    随着第一次作业的完成,助教 牛老师又布置了第二次作业:用java语言编写一个程序然后进行四则运算用户用键盘输入一个字符来结束程序显示统计结果.一开始看到这个题目我也着实吓了一跳 因为不知道如何下手而且 ...

  3. 留念 C语言第一课简单的计算器制作

    留念 C语言第一课简单的计算器制作 学C语言这么久了.  /* 留念 C语言第一课简单的计算器制作 */   #include<stdio.h>  #include<stdlib.h ...

  4. C 语言实例 - 实现简单的计算器

    C 语言实例 - 实现简单的计算器 实现加减乘除计算. 实例 # include <stdio.h> int main() { char operator; double firstNum ...

  5. 使用java语言编写窗口按钮

    使用java语言编写窗口按钮 代码如下: package Day08; import java.awt.FlowLayout; import javax.swing.JButton;import ja ...

  6. 用C语言编写一个简单的词法分析程序

    问题描述: 用C或C++语言编写一个简单的词法分析程序,扫描C语言小子集的源程序,根据给定的词法规则,识别单词,填写相应的表.如果产生词法错误,则显示错误信息.位置,并试图从错误中恢复.简单的恢复方法 ...

  7. Atiitt 使用java语言编写sql函数或存储过程

    Atiitt 使用java语言编写sql函数或存储过程 1.1. java编写sql函数或存储过程的机制1 1.2. Java编写sp的优点1 1.3. 支持java源码,class文件,blog f ...

  8. Fastjson是一个Java语言编写的高性能功能完善的JSON库。

    简介 Fastjson是一个Java语言编写的高性能功能完善的JSON库. 高性能 fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson. ...

  9. 使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网)

    使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网) 一,前期准备 1,Java IDE(Eclipse)与JDK的安装与配置jdk-15.0.1-免配置路径版提取码:earu免安装版 ...

  10. 用Java语言编写一个简易画板

    讲了三篇概博客的概念,今天,我们来一点实际的东西.我们来探讨一下如何用Java语言,编写一块简易的画图板. 一.需求分析 无论我们使用什么语言,去编写一个什么样的项目,我们的第一步,总是去分析这个项目 ...

随机推荐

  1. maven 本地仓库的设置

    设置方式一: 安装好maven后,在maven安装目录的conf文件夹下有一个settings.xml文件,该文件就是用来配置maven的一些常用参数 %MAVEN% / conf / setting ...

  2. fscanf(格式化字符串输入)

    fscanf(格式化字符串输入) 相关函数 scanf,sscanf 表头文件 #include<stdio.h> 定义函数 int fscanf(FILE * stream ,const ...

  3. [一]初识Json

    JSON 对象{ "name":"张三" , "age":22}JSON 数组{"student": [{ " ...

  4. Arrays.asList的源码分析

    以前一直很奇怪为什么Arrays.asList的数组不能插入新的数据,后来看了源码发现是因为内部是一个final的数组支持起来的Arraylist,下面贴入源码与分析. 1.先看Arrays的方法 我 ...

  5. 读取.tmx地图

    读取.tmx地图 m_GameMap = CCTMXTiledMap::create("map1.tmx"); this->addChild(m_GameMap,1); 读取 ...

  6. Cocos2d-x 3.x学习笔记(一):开始Cocos2d之旅

    首先,进入官网下载cocos2d-x:http://www.cocos.com/download/,当然你需要注册一个账号才可以下载. 接下来需要跟着官网的配置文档配置一下开发环境,不得不说,Coco ...

  7. 【STL学习】map&set

    技术不只是我的工作,也是我的生活,以后的博客中会穿插一些个人的喜悦.愤怒或者感悟,希望大家能够接受. 我所有的一切,比我技术更好的怕是我的脸皮了,昨天收到京东面试没有通过的消息,喊了几句“我好悲伤啊” ...

  8. ExtJs5.1.1使用中问题集锦

    1.获取grid filter对象:  grid.getStore().getFilters().items 2.获取grid filter后把filter对象转换成json格式字符串:grid.ge ...

  9. Zmodem transfer canceled by remote side

    linux sz命令时报这个错误,看了一头雾水. 仔细看了一下发现竟然是要sz的文件名称写错了,抱着个错误和误导人呢.估计路径写错了也是这个错误.

  10. HDU 5493 Queue 树状数组

    Queue Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5493 Des ...