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. algorithm@ Strongly Connected Component

    Strongly Connected Components A directed graph is strongly connected if there is a path between all ...

  2. poj2152 Fire

    好难啊,我弱爆了. 题解看陈启峰的论文... /** * Problem:POJ2152 * Author:Shun Yao * Time:2013.9.2 * Result:Accepted * M ...

  3. openstack api users list get token get servers

    curl -i \  -H "Content-Type: application/json" \  -d '{ "auth": {    "ident ...

  4. android开发中遇到的问题

    7.ExpandableListView setOnChildClickListener无效,请在adapter的方法isChildSelectable返回true即可 6.使用<shape/& ...

  5. HDU 4628

    这是一个大水题啊... 因为比赛时不会算复杂度耽误半天. i从0到2^n枚举集合i的所有分割两半的情况的复杂度为O(3^n),可以想象这个过程相当于是给每个位标记0,1,2(0表示不选,1,2表示两个 ...

  6. HTTP笔记:URI与URL

    URI与URL 简单理解是这样的:理解URI和URL的区别,我们引入URN这个概念.URI = Universal Resource Identifier 统一资源标志符URL = Universal ...

  7. sonne_game网站开发03 spring-mvc+freemarker整合

    今天的任务就是在spring+mybatis+springmvc的基础上,将freemarker整合进来. freemarker是什么? freemarker是一种模板引擎.它的目的是基于模板和数据, ...

  8. MSSQLSERVER数据库- LEFT JOIN后面跟着WHERE竟变成内联 解决方法

    在LEFT JOIN后面跟着WHERE竟变成内联.百度后看到这个解决方法. 记录如下: select sre.*, co.description from subscribedratingelemen ...

  9. window 便笺

    windows的便签很方便人们记录日常工作安排,但是不是所有人都知道如何调用,下面介绍下如何调用windows便签: 1.win + R -->  StikyNot 2.弹出便签界面 3.右击底 ...

  10. maven配置编译路径

    在build标签下添加 <build> <sourceDirectory>src/main/java</sourceDirectory> <resources ...