总结:还是那个不懂代码放在哪里好?不知道怎么定义一些关键性变量。比如boolean 型的。

package com.sads;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import javax.swing.*; public class Test {
public static void main(String[] args) {
calc c = new calc();
}
} class calc extends JFrame implements ActionListener {
JPanel jp;
JButton jb1, jb2, jb3, jb4, jb5, jb6, jb7, jb8, jb9, jb0, jb_jia, jb_jian,
jb_cheng, jb_chu, jb_dian, jb_deng;
String str;// 定义一个字符串
double num1 = 0;
double num2 = 0;
char c = '\0';
double pp = 0;// 这里又不知道是什么东西::??你妹的
boolean ready = true;
JLabel jf; calc() {
jf = new JLabel("0.0");
jf.setFont(new Font("", 1, 18));
jf.setHorizontalAlignment(JLabel.RIGHT); jp = new JPanel(new GridLayout(4, 4));
jb1 = new JButton("1");
jb2 = new JButton("2");
jb3 = new JButton("3");
jb_jia = new JButton("+");
jb_jia.addActionListener(this);
jb4 = new JButton("4");
jb5 = new JButton("5");
jb6 = new JButton("6");
jb_jian = new JButton("-");
jb_jian.addActionListener(this);
jb7 = new JButton("7");
jb8 = new JButton("8");
jb9 = new JButton("9");
jb0 = new JButton("0");
jb_cheng = new JButton("*");
jb_cheng.addActionListener(this);
jb_chu = new JButton("/");
jb_chu.addActionListener(this);
jb_deng = new JButton("=");
jb_deng.addActionListener(this);
jb_dian = new JButton(".");
jb_dian.addActionListener(this); // jp.add(jf);
jf.setBackground(Color.yellow);
jp.add(jb1);
jb1.addActionListener(this);// 需经过多次尝试,这是简单的几个按钮触发的时候会产生动作,说明只是几个按钮注册了监听。所以要想
jb2.addActionListener(this);// 所有的按钮起作用,那么必须所有的按钮都注册了监听事件
jb3.addActionListener(this);
jb4.addActionListener(this);
jb5.addActionListener(this);
jb6.addActionListener(this);
jb7.addActionListener(this);
jb8.addActionListener(this);
jb9.addActionListener(this);
jb0.addActionListener(this); jp.add(jb2);
jp.add(jb3);
jp.add(jb_jia);
jp.add(jb4);
jp.add(jb5);
jp.add(jb6);
jp.add(jb_jian);
jp.add(jb7);
jp.add(jb8);
jp.add(jb9); jp.add(jb_cheng);
jp.add(jb0);
jp.add(jb_chu);
jp.add(jb_dian);
jp.add(jb_deng);
this.add(jf, BorderLayout.NORTH);// 在这里我写错了,我把文本框add到了panel里了。如果放在panel里那么就与按钮一样式流式布局
this.add(jp); // 无论如何也不会是放在最上方,
this.setBounds(100, 10, 300, 200);
this.setDefaultCloseOperation(3);
this.setVisible(true);
this.setResizable(false);// 这里设置窗体的大小不可变。 } @Override
public void actionPerformed(ActionEvent e) { str = e.getActionCommand();// 获取所有字符串,包括+ - * / 数字
if (str.equals("0") || str.equals("1") || str.equals("2")
|| str.equals("3") || str.equals("4") || str.equals("5")
|| str.equals("6") || str.equals("7") || str.equals("9")
|| str.equals("8") || str.equals("0") || str.equals(".")) { if (ready) {
jf.setText(str);// 获取到数字,也就是从文本框显示出来
ready = false; } else {
jf.setText(jf.getText() + str);
ready = false;// 这里不用加boolean.一定不能加 } } else if (str.equals("+") || str.equals("-") || str.equals("*")
|| str.equals("/")) {
// 这里的作用是当我们点击了一个符号后,能够实现真的点击了其中的一个运算符号
num1 = Double.parseDouble(jf.getText());
c = str.charAt(0);// 这里依旧是字符型的
ready = true;// 这里第一个数和第二个数是连续输入的,分不开,所以是默认要执行下去,会有点不正常,之后又是正常的
// boolean ready = true;// 你妹我又错了,习惯定义为boolean值 这是乱代码完全不合逻辑性的
// jf.setText("");//这里把所有的文本框内容都清空了。不对,只对
} else if (str.equals("=")) {
num2 = Double.parseDouble(jf.getText()); switch (c) {
case '+':
pp = (num1 + num2);
break;
case '-':// num1-num2
pp = (num1 - num2);
break;
case '*':// num1*num2
pp = (num1 * num2);
break;
case '/':// num1/num2
pp = (num1 / num2);
break; }
jf.setText(pp + " ");// 这里是将字符转换成字符串
ready = true;// 这里是清空的功能,下次输入数字的时候 文本框是重新输入的,并且计算后不是接着计算
// 所以这里我是可以继续计算的,方便
}
// + - * / // num1=Double.parseDouble(jf.getText());//将字符串转换为double型 // num2=Double.parseDouble(jf.getText());//这里面是个String型----不能这么搞,因为会不知道点击的是哪个数?------- // char c='\0';//这是装所有的运算符 -当用户点击+ 那么就是加,///当用户点击-那么就是-//当用户点击*,那么就是* // 定义的按钮符号都是用来监听的,我感觉都没用到,
// 感觉这个运算符号跟没装是一样的。 } }

  

java代码-----计算器,界面+功能+boolean的更多相关文章

  1. java代码---------计算器实现

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

  2. java代码----------计算器代码

    总结: 很多不完善—— package com.rue; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.a ...

  3. java代码------计算器

    总结:我用if()语句写计算功能的代码时,实现不了,与switch_-catch语句不一样.不知到怎么实现 package com.p; import javax.swing.*; import ja ...

  4. java代码------计算器核心位置添加

    总结:点击等号时,什么代码 else if(str.equals("-")){ ready=true; if(c=='\0'){ num1=Double.parseDouble(j ...

  5. Java实现发邮件功能---网易邮箱

    目录 Java实现发邮件功能 前言 开发环境 代码 效果 结束语 Java实现发邮件功能 前言 电子邮件的应用场景非常广泛,例如新用户加入,即时发送优惠清单.通过邮件找回密码.监听后台程序,出现异常自 ...

  6. ElasticSearch7.3学习(三十)----ES7.X SQL新特性解析及使用Java api实现sql功能

    一.ES7 sql新特性 1.1 数据准备 创建索引及映射 建立价格.颜色.品牌.售卖日期 四个字段 PUT /tvs PUT /tvs/_mapping { "properties&quo ...

  7. python库的tkinter带你进入GUI世界(计算器简单功能)

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 一个处女座的程序猿 PS:如有需要Python学习资料的小伙伴可以加 ...

  8. 200行Java代码搞定计算器程序

    发现了大学时候写的计算器小程序,还有个图形界面,能够图形化展示表达式语法树,哈哈;) 只有200行Java代码,不但能够计算加减乘除,还能够匹配小括号~ 代码点评: 从朴素的界面配色到简单易懂错误提示 ...

  9. Java 图形化界面设计(GUI)实战练习(代码)

    关于Java图形化界面设计,基础知识网上可搜,下面简单介绍一下重点概念,然后就由浅入深代码实例. 程序是为了方便用户使用的,Java引入图形化界面编程. 1.JFrame 是容器类 2.AWT 是抽象 ...

随机推荐

  1. 公客网beta阶段发布说明

    项目 公客 公正客观的课程评价网站 功能说明 评价的增删改 对课程发表评价 限制评价次数(3次),删除与增量修改评价 评价下的讨论与点赞 在评价下添加讨论,支持在讨论中使用@与对方交流想法 为评价点赞 ...

  2. RabbitMQ(6) 集群部署

    单节点部署 rabbitmq单节点部署比较简单,可以使用apt-get等工具快速安装部署. wget -O- https://www.rabbitmq.com/rabbitmq-release-sig ...

  3. SpringXML方式配置bean的生存范围Scope

    在一个bean的配置里面可以指定一个属性Scope,也就是bean的范围,bean的生命周期. Scope可取的值5种:singleton(默认).prototype.request.session. ...

  4. Linux真随机数的生成

    今天看<白帽子讲WEB安全>一书,看到笔者谈到Linux如何实现真随机数生成,感觉非常有用,记录下来 #include<iostream> using namespace st ...

  5. [置顶] kubernetes1.8发布跟踪

    一.Kubernetes发布历史回顾 1.        Kubernetes 1.0 - 2015年7月发布 2.        Kubernetes 1.1 - 2015年11月发布 3.     ...

  6. SpreadJS 在 Angular2 中支持绑定哪些属性?

    SpreadJS 纯前端表格控件是基于 HTML5 的 JavaScript 电子表格和网格功能控件,提供了完备的公式引擎.排序.过滤.输入控件.数据可视化.Excel 导入/导出等功能,适用于 .N ...

  7. [Linux] find文件查找和grep文件内容查找

    在使用linux时,经常需要进行文件查找.其中查找的命令主要有find和grep.两个命令是有区别的: (1)find命令:根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时 ...

  8. caffe配置

    2016年最开心的事哈哈哈. 基本参照它. http://www.linuxdiyf.com/linux/12708.html 有时间在稍微写点. linux下:(装上GPU之后,在bois貌似禁止了 ...

  9. learn Linux sed command

    learn Linux sed command 一.参考文档: . sed命令详解 http://qifuguang.me/2015/09/21/sed%E5%91%BD%E4%BB%A4%E8%AF ...

  10. Vmware无法正常打开

    VMware的问题 VMware总是搞一些事情,比如隔三差五就打不开了.那么怎么办呢?以前总要把Vm的安装程序重新开始一遍,然后选择修复 但是呢?这样太麻烦了,前几月做web开发的时候接触了Apach ...