java代码---------计算器实现
总结:虽然,没有人会帮你到底,凭什么要对你怜香惜玉
注意实现哪一个运算就把相关代码放在else if这个判断语句里面

package com.rue; import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*; //实现计算器的功能,我他妈的真是不懂变通。 class Ji extends JFrame implements ActionListener {
private static final String CE = null;
// 定义按钮
StringBuffer str = new StringBuffer();
JButton jb_0, jb_1, jb_2, jb_3, jb_4, jb_5, jb_6, jb_7, jb_8, jb_9, jb_jia,
jb_jian, jb_cheng, jb_chu, jb_dian, jb_deng, jb_delete;
JLabel jf;
double num1 = 0;
double num2 = 0;
char c = '\0';
double m;
boolean ready = true; public Ji() {
JPanel jp = new JPanel(new GridLayout(5, 4));// 把所有的按钮组件和文本框放在这个panel里面
jf = new JLabel("0.0");
jf.setFont(new Font("", 1, 18));
jf.setHorizontalAlignment(JLabel.RIGHT);
jb_delete = new JButton("CE");// 设一个删除的按钮
jb_0 = new JButton("0");
JButton jb_genghao = new JButton("√");
jb_1 = new JButton("1");
jb_genghao.addActionListener(this);
jb_2 = new JButton("2");
jb_3 = new JButton("3");
jb_4 = new JButton("4");
jb_5 = new JButton("5");
jb_6 = new JButton("6");
jb_7 = new JButton("7");
jb_8 = new JButton("8");
jb_9 = new JButton("9");
jb_jia = new JButton("+");
jb_jian = new JButton("-");
jb_cheng = new JButton("*");
jb_chu = new JButton("/");
jb_dian = new JButton(".");
jb_deng = new JButton("=");
//
jb_delete.addActionListener(this);
jb_0.addActionListener(this);
jb_1.addActionListener(this);
jb_2.addActionListener(this);
jb_3.addActionListener(this);
jb_4.addActionListener(this);
jb_5.addActionListener(this);
jb_6.addActionListener(this);
jb_7.addActionListener(this);
jb_8.addActionListener(this);
jb_9.addActionListener(this);
jb_jia.addActionListener(this);
jb_jian.addActionListener(this);
jb_cheng.addActionListener(this);
jb_chu.addActionListener(this);
jb_dian.addActionListener(this);
jb_deng.addActionListener(this); JButton jb_Back = new JButton("Back");
jb_Back.addActionListener(this); jp.add(jb_1);
jp.add(jb_2);
jp.add(jb_3);
jp.add(jb_4);
jp.add(jb_5);
jp.add(jb_6);
jp.add(jb_7);
jp.add(jb_8);
// this.add(jp); jp.add(jb_9); jp.add(jb_jia);
jp.add(jb_jian);
jp.add(jb_cheng);
jp.add(jb_chu);
jp.add(jb_dian);
jp.add(jb_deng);
jp.add(jb_0);
jp.add(jb_Back);
jp.add(jb_delete);
jp.add(jb_genghao);
this.add(jf, BorderLayout.NORTH);
this.add(jp); // this.setLayout();
this.setVisible(true); this.setBounds(100, 20, 230, 300);
this.setDefaultCloseOperation(3); } public double count() {
switch (c) {
case '+':
m = num1 + num2;
break;
case '-':
m = num1 - num2;
break;
case '*':
m = num1 * num2;
break;
case '/':
m = num1 / num2;
break;
case '√':
m = Math.sqrt(num1);
break;
case 'E':
m = '\0';
} return m;
} public void actionPerformed(ActionEvent e) {
String str = e.getActionCommand();
if (str.equals("0") || str.equals(".") || str.equals("1")
|| str.equals("2") || str.equals("3") || str.equals("4")
|| str.equals("5") || str.equals("6") || str.equals("7")
|| str.equals("8") || str.equals("9") || str.equals("1")) {
if (ready) {
jf.setText(str);
ready = false;
} else { jf.setText(jf.getText() + str);
ready = false;
} } else if (str.equals("+")) {
num1 = Double.parseDouble(jf.getText());
// count();
// ////////////其实可以感觉到操作符有点不正常的。就是操作符设置的问题有点大
// if(num1=){}
c = '+'; ready = true;
} else if (str.equals("√")) {
num1 = Double.parseDouble(jf.getText());
c = '√';
ready = true;
} else if (str.equals("CE")) {
num1 = Double.parseDouble(jf.getText());
// c='c';//这里可以判断按的是哪一个按钮吗?
jf.setText("0.0");// 记住这里是要清空,但并不是把lable也全部删除看不见。Label的作用。
ready = true;// 当这里为false时,它会与0.0连接一起显示出来,此时设置我ture。它正常了。是不是继续执行下一步的意思呢? } else if (str.equals("-")) {
num1 = Double.parseDouble(jf.getText());
c = '-';
ready = true;
} else if (str.equals("*")) {
num1 = Double.parseDouble(jf.getText());
c = '*';
ready = true;
} else if (str.equals("/")) {
num1 = Double.parseDouble(jf.getText());
c = '/';
ready = true;
} else if (str.equals("=")) {
num2 = Double.parseDouble(jf.getText()); jf.setText(count() + ""); ready = false;
} } } public class Test {
public static void main(String[] args) {
new Ji();
}
}
java代码---------计算器实现的更多相关文章
- java代码------计算器
总结:我用if()语句写计算功能的代码时,实现不了,与switch_-catch语句不一样.不知到怎么实现 package com.p; import javax.swing.*; import ja ...
- java代码----------计算器代码
总结: 很多不完善—— package com.rue; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.a ...
- java代码-----计算器,界面+功能+boolean
总结:还是那个不懂代码放在哪里好?不知道怎么定义一些关键性变量.比如boolean 型的. package com.sads; import java.awt.BorderLayout; import ...
- java代码------计算器核心位置添加
总结:点击等号时,什么代码 else if(str.equals("-")){ ready=true; if(c=='\0'){ num1=Double.parseDouble(j ...
- 200行Java代码搞定计算器程序
发现了大学时候写的计算器小程序,还有个图形界面,能够图形化展示表达式语法树,哈哈;) 只有200行Java代码,不但能够计算加减乘除,还能够匹配小括号~ 代码点评: 从朴素的界面配色到简单易懂错误提示 ...
- [java代码库]-简易计算器(第二种)
[java代码库]-简易计算器(第二种) 第二种方案:在程序中不使用if/switch……case等语句,完成计算器功能. <html> <head> <title> ...
- 对一致性Hash算法,Java代码实现的深入研究
一致性Hash算法 关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法.一致性 ...
- 怎样编写高质量的java代码
代码质量概述 怎样辨别一个项目代码写得好还是坏?优秀的代码和腐化的代码区别在哪里?怎么让自己写的代码既漂亮又有生命力?接下来将对代码质量的问题进行一些粗略的介绍.也请有过代码质量相关经验的朋友 ...
- 数据结构笔记--二叉查找树概述以及java代码实现
一些概念: 二叉查找树的重要性质:对于树中的每一个节点X,它的左子树任一节点的值均小于X,右子树上任意节点的值均大于X. 二叉查找树是java的TreeSet和TreeMap类实现的基础. 由于树的递 ...
随机推荐
- dell c6220II lsi阵列卡
1.如果在lsi阵列卡上有多个raid,那么需要在第一个创建的raid上装系统,或者说先创建装系统的raid,否则可能报 hard disk error(centos 6.6) 2.热插拔的后果:如果 ...
- iscroll中文文档
转自:http://blog.csdn.net/sweetsuzyhyf/article/details/44195549 IScroll.js 最新版本 v5.1.2 修复了输入框无法输入和横向滚动 ...
- vue.js 源代码学习笔记 ----- Dep
/* @flow */ import type Watcher from './watcher' import { remove } from '../util/index' let uid = 0 ...
- MPAndroidChart Wiki(译文)~Part 6
22. ViewPortHandler ViewPortHandler负责处理图表的视窗.也就是说它负责图表视图中的展示给用户的那部分内容.包括图表位移,缩放级别,图表大小和绘制区域以及当前偏移量.V ...
- ng-bind 拼接字符标签
- iOS的坑:ERRORITMS-90096: "Your binary is not optimized for iPhone 5 - New iPhone appsand app updatesXcode7提交到App Store二进制文件时报错错误:“你itms-90096二进制不是iPhone 5的新iPhone应用程序和应用程序的更新必须提交支持iPhone 5英寸的显示器........
在工程里的Images.xcassets添加并设置LaunchImage对解决ERROR ITMS-90096根本不会起到任何作用,需要单独添加针对iPhone 5的载入图片.关键点有三项: 1.图片 ...
- couldn't import dot_parser
这个错误,你不要信它,实际可以画图了.害我又降级安装,真是气死了.
- JSP学习(五)JSP标签
JSP标签 jsp的常用标签有: <jsp:include>标签 <jsp:forward>标签 <jsp:param>标签 <jsp:include> ...
- BZOJ3144 Hnoi2013 切糕 【网络流】*
BZOJ3144 Hnoi2013 切糕 Description Input 第一行是三个正整数P,Q,R,表示切糕的长P. 宽Q.高R.第二行有一个非负整数D,表示光滑性要求.接下来是R个P行Q列的 ...
- mysql拼接多条查询结果并且加序列
SELECT GROUP_CONCAT(a.DESCRIPTION SEPARATOR '\n') FROM (SELECT (@rowNum:=0) AS rowNo,CONCAT('公司内 ...