Java语言编写计算器(简单的计算器)
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语言编写计算器(简单的计算器)的更多相关文章
- 用java语言编写的简单二叉树
package com.cjonline.foundation.evisa; public class TestTree { private int data=-1; private TestTree ...
- 第二次作业利用java语言编写计算器进行四则运算
随着第一次作业的完成,助教 牛老师又布置了第二次作业:用java语言编写一个程序然后进行四则运算用户用键盘输入一个字符来结束程序显示统计结果.一开始看到这个题目我也着实吓了一跳 因为不知道如何下手而且 ...
- 留念 C语言第一课简单的计算器制作
留念 C语言第一课简单的计算器制作 学C语言这么久了. /* 留念 C语言第一课简单的计算器制作 */ #include<stdio.h> #include<stdlib.h ...
- C 语言实例 - 实现简单的计算器
C 语言实例 - 实现简单的计算器 实现加减乘除计算. 实例 # include <stdio.h> int main() { char operator; double firstNum ...
- 使用java语言编写窗口按钮
使用java语言编写窗口按钮 代码如下: package Day08; import java.awt.FlowLayout; import javax.swing.JButton;import ja ...
- 用C语言编写一个简单的词法分析程序
问题描述: 用C或C++语言编写一个简单的词法分析程序,扫描C语言小子集的源程序,根据给定的词法规则,识别单词,填写相应的表.如果产生词法错误,则显示错误信息.位置,并试图从错误中恢复.简单的恢复方法 ...
- Atiitt 使用java语言编写sql函数或存储过程
Atiitt 使用java语言编写sql函数或存储过程 1.1. java编写sql函数或存储过程的机制1 1.2. Java编写sp的优点1 1.3. 支持java源码,class文件,blog f ...
- Fastjson是一个Java语言编写的高性能功能完善的JSON库。
简介 Fastjson是一个Java语言编写的高性能功能完善的JSON库. 高性能 fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson. ...
- 使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网)
使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网) 一,前期准备 1,Java IDE(Eclipse)与JDK的安装与配置jdk-15.0.1-免配置路径版提取码:earu免安装版 ...
- 用Java语言编写一个简易画板
讲了三篇概博客的概念,今天,我们来一点实际的东西.我们来探讨一下如何用Java语言,编写一块简易的画图板. 一.需求分析 无论我们使用什么语言,去编写一个什么样的项目,我们的第一步,总是去分析这个项目 ...
随机推荐
- leetcode@ [274/275] H-Index & H-Index II (Binary Search & Array)
https://leetcode.com/problems/h-index/ Given an array of citations (each citation is a non-negative ...
- Android实例-路径信息及文件和文件夹的操作(XE8+小米2)
结果: GetTempFileName:/storage/sdcard0/Android/data/com.embarcadero.Project1/files/tmp/tmp.iQIip24407 ...
- [iOS基础控件 - 5.1] UIScrollView
A.需要掌握 UIScrollView 是一个能够滚动的视图控件,可以用来展示大量内容,如手机的“设置” 1.常见属性 2.常用代理方法 3.缩放 4.UIScrollView和UIPageContr ...
- 射频识别技术漫谈(5)——防冲突【worldsing 笔记】
正常情况下读写器某一时刻只能对磁场中的一张射频卡进行读写操作.但是当多张卡片同时进入读写器的射频场时,读写器怎么办呢?读写器需要选出唯一的一张卡片进行读写操作,这就是防冲突. 防冲突机制是非接触式智能 ...
- Tokumx 安装指南(做法如同MongoDB)
安装说明系统环境:Centos-6.3安装软件:mongodb-linux-x86_64-2.2.2.tgz下载地址:http://www.mongodb.org/downloads安装机器:192. ...
- JSon实体类快速生成插件 GsonFormat 1.2.0
写在前头:本插件只适用 android studio和 Intellij IDEA 工具,eclipse 的少年无视我吧!!! 这是一个根据JSONObject格式的字符串,自动生成实体类参数. gi ...
- BZOJ 2049: [Sdoi2008]Cave 洞穴勘测 LCT
2049: [Sdoi2008]Cave 洞穴勘测 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnli ...
- Android多媒体-人脸识别
1. 相关背景 Google 于2006年8月收购Neven Vision 公司 (该公司拥有 10 多项应用于移动设备领域的图像识别的专利),以此获得了图像识别的技术,并不是常快应用到免费的 Pic ...
- [MODx] 7. MIGX DB
MODx provides a really unfriendly way to work with xPDO class. What I means is you need to define XM ...
- Golang-interface(四 反射)
github:https://github.com/ZhangzheBJUT/blog/blob/master/reflect.md 一 反射的规则 反射是程序执行时检查其所拥有的结构.尤其是类型的一 ...