java代码----------计算器代码
总结:
很多不完善——
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, jb_daoshu;
JLabel jf;
double num1 = 0;
double num2 = 0;
char c = '\0';
double m;
double f;
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));
jb_daoshu = new JButton("1/x");// /这是求倒数
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_daoshu.addActionListener(this);
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_daoshu);// 为将按钮添加进
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';
case 'd':
m = 1 / num1;
} 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("1/x")) {
num1 = Double.parseDouble(jf.getText());
// c='';
String s = jf.getText().trim();// 这是将文本框内的数据为它的的倒数
f = Double.parseDouble(s);// 将字符串转换为double型
jf.setText("" + 1 / f);// 这里的m有新的意义、它是double型数据,,这里的m可以设成其他,只要是double型就可以 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代码----------计算器代码的更多相关文章
- Windows使用Java执行cmd代码
话不多说,直入正题 今天给大家分享下,怎么在Windows上使用Java执行Cmd代码! 首先默认大家都熟悉cmd代码,以及cmd的命令行操作. 直接在main方法中写这一行(需要抛出异常),可以直接 ...
- 正则表达式学习笔记(附:Java版示例代码)
具体学习推荐:正则表达式30分钟入门教程 . 除换行符以外的任意字符\w word,正常字符,可以当做变量名的,字母.数字.下划线.汉字\s space,空白符 ...
- java俄罗斯方块游戏代码
java俄罗斯方块游戏代码: package com; import java.awt.Color; import java.awt.Graphics; import java.awt.event.K ...
- Java Core 学习笔记——3.char/Unicode/代码点/代码单元
通用字符集(UCS) UCS是由ISO制定的ISO 10646(或称ISO/IEC 10646)标准所制定的标准字符集. UCS包括了其他所有的字符集(包含了已知语言的所以字符). ISO/IEC 1 ...
- 【Java基础】Java中的代码块
什么是代码块 在Java中,用{}括起来的代码称之为代码块. 代码块分类 局部代码块:在局部变量位置且用{}括起来的代码,用于限制局部变量的生命周期. 构造代码块:在类中的成员变量位置并用{}括起来的 ...
- java常用用代码
/** *Java获取IP代码 */ import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.ev ...
- java学用代码
/** *Java获取IP代码 */ import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.ev ...
- 分享非常有用的Java程序(关键代码)(七)---抓屏程序
原文:分享非常有用的Java程序(关键代码)(七)---抓屏程序 import java.awt.Dimension; import java.awt.Rectangle; import java.a ...
- 分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要)
原文:分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要) XML文件 <?xml version="1.0"?> <student ...
随机推荐
- python中pickle模块与base64模块的使用
pickle模块的使用 pickle模块是python的标准模块,提供了对于python数据的序列化操作,可以将数据转换为bytes类型,其序列化速度比json模块要高. pickle.dumps() ...
- Confluence 安装
一.事前准备 1.jdk安装:5.8.10的jdk至少是7,其中7中还有很多官网是不建议的,这儿选中jdk-7u79 二.安装Confluence 双击atlassian-confluence-5.8 ...
- 设计 react 组件
重新设计 React 组件库 诚身 7 个月前 在 react + redux 已经成为大部分前端项目底层架构的今天, 让我们再次回到软件工程界一个永恒问题的探讨上来, 那就是如何提升一个开发团队 ...
- Linux:tree命令详解
tree 以树状图列出目录的内容 语法 tree(选项)(参数) 选项 -a:显示所有文件和目录: -A:使用ASNI绘图字符显示树状图而非以ASCII字符组合: -C:在文件和目录清单加上色彩,便于 ...
- 监控摄像机常识:宽动态 (WDR)介绍和理解
安装和使用监控摄像机经常会遇到强光问题. 因为我们不可能灵活选择摄像机的安装位置, 解决或者处理强光是一个无法避免的问题. 不管是由反光材质或者灯源造成此反光, 解决问题的方案来自于摄像机支持的一个特 ...
- MySQL 不开启slave如何完成异地复制
1,分批次通过远程的binlog来进行数据加载 业务新需求,线上数据库数据拉到本次,但是不允许开启slave服务,不建立直接外网的数据库账号,也不能打通数据库对外网的网络,所以我们测试环境无法通过普通 ...
- [置顶]
针对 CoordinatorLayout 及 Behavior 的一次细节较真
我认真不是为了输赢,我就是认真.– 罗永浩 我一直对 Material Design 很感兴趣,每次在官网上阅读它的相关文档时,我总会有更进一步的体会.当然,Material Design 并不是仅仅 ...
- 利用pandas随机切分csv文件
把数据集随机切分为训练集和测试集 method 1: df = pd.read_csv('data/tgnb_merge.csv', encoding='utf-8') df.drop_duplica ...
- Python环境准备(安装python解释器)
上篇文章介绍了Python的相关知识,本章就开始着手操作,创建第一个Python程序,在这之前,首先需要配置Python的运行环境,也就是安装python解释器 ------------- 完美的分割 ...
- vue 之 vue-router
官方文档 // 0. 如果使用模块化机制编程,导入Vue和VueRouter,要调用 Vue.use(VueRouter) // 1. 定义(路由)组件. // 可以从其他文件 import 进来 c ...