当前位置: 首页 > news >正文

java代码---------陈勇老师的

总结:看看写的多漂亮啊

package com.test4;

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class Test {
	public static void main(String[] args) {
		Calculator_Frame cf = new Calculator_Frame();
	}

}

class Calculator_Frame extends JFrame implements ActionListener {
	boolean readyNextNumber = true;
	double number1 = 0;
	double number2 = 0;
	char op = '\0';
	JLabel jl;
	JPanel jp;
	JButton jb_1, jb_2, jb_3, jb_4, jb_5, jb_6, jb_7, jb_8, jb_9, jb_0, jb_jia,
			jb_jian, jb_cheng, jb_chu, jb_dian, jb_deng;
	String str;
	Calculator_Frame() {
		jl = new JLabel("0.0", JLabel.RIGHT);
		jl.setFont(new Font("Dialog", 1, 17));
		jp = new JPanel(new GridLayout(4, 4));
		jb_0 = new JButton("0");
		jb_9 = new JButton("9");
		jb_1 = new JButton("1");
		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_jia = new JButton("+");
		jb_jian = new JButton("-");
		jb_cheng = new JButton("*");
		jb_chu = new JButton("/");
		jb_deng = new JButton("=");
		jb_dian = new JButton(".");
		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);

		jp.add(jb_1);
		jp.add(jb_2);
		jp.add(jb_3);
		jp.add(jb_jia);
		jp.add(jb_4);
		jp.add(jb_5);
		jp.add(jb_6);
		jp.add(jb_jian);
		jp.add(jb_7);
		jp.add(jb_8);
		jp.add(jb_9);
		jp.add(jb_cheng);
		jp.add(jb_0);
		jp.add(jb_dian);
		jp.add(jb_deng);
		jp.add(jb_chu);
		this.add(jl, BorderLayout.NORTH);
		this.add(jp, BorderLayout.CENTER);
		this.setBounds(100, 10, 200, 300);
		this.setDefaultCloseOperation(3);
		this.setVisible(true);

	}

	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("8")
				|| str.equals("9") || str.equals(".")) {
			if (readyNextNumber) {// 判断是否想输入一个新数字
				jl.setText(str);
				readyNextNumber = false;
			} else {
				jl.setText(jl.getText() + str);// 把label上的字符串加上刚刚点击的字符串
			}
			// 判断是否点击的操作符
		} else if (str.equals("+")) {
			readyNextNumber = true;
			
			if(op == '\0'){
				number1 = Double.parseDouble( jl.getText());
			}else{
				number2 = Double.parseDouble( jl.getText());
				jl.setText(count()+"");
				number1 = count();
			}
			
			
			op = '+';
		}else if(str.equals("-")){
			readyNextNumber = true;
			
			if(op == '\0'){
				number1 = Double.parseDouble( jl.getText());
			}else{
				number2 = Double.parseDouble( jl.getText());
				jl.setText(count()+"");
				number1 = count();
			}
			op = '-';
		}else if(str.equals("*")){
			readyNextNumber = true;
			
			if(op == '\0'){
				number1 = Double.parseDouble( jl.getText());
			}else{
				number2 = Double.parseDouble( jl.getText());
				jl.setText(count()+"");
				number1 = count();
			}
			op = '*';
		}else if(str.equals("/")){
			readyNextNumber = true;
			
			if(op == '\0'){
				number1 = Double.parseDouble( jl.getText());
			}else{
				number2 = Double.parseDouble( jl.getText());
				jl.setText(count()+"");
				number1 = count();
			}
			op = '/';
		}else if(str.equals("=")){
			readyNextNumber = true;
			number2 = Double.parseDouble( jl.getText());
			jl.setText(count()+"");
			op = '\0';
		}
	}
	
	public double count(){
		double result = 0;
		switch (op) {
		case '+':
			result=	number1 + number2;
			break;
		case '-':
			result=number1 - number2;
			break;
		case '*':
			result=number1 * number2;
			break;
		case '/':
			result=number1 / number2;
			break;

		default:
			break;
		}
		return  result;
	}
	
	
	
	

}

  

转载于:https://www.cnblogs.com/langlove/p/3506383.html

相关文章:

  • Python cookbook-读书笔记01
  • 您还在用下一步下一步的方式安装SQLSERVER和SQLSERVER补丁吗?
  • PLSQL_统计信息系列04_统计信息的锁定和删除
  • JDBC多线程多个statement共享同一个connection
  • XMPP学习——2、用户登录
  • 建设网站购物平台你需要知道的五个方面
  • MySql FOR UPDATE 锁的一点问题……
  • FineUploader 学习笔记
  • 大一下学期,大二上学期,这一年
  • mysql 关于自增字段的一些说明
  • Hyper-v学习(三),虚拟机实时迁移之存储迁移
  • Jquery - 属性选择器
  • typeof instanceof
  • HashMap vs. TreeMap vs. Hashtable vs.LinkedHashMap
  • 第二十二课:磁滞和麦克斯韦方程组
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • css属性的继承、初识值、计算值、当前值、应用值
  • JS题目及答案整理
  • PermissionScope Swift4 兼容问题
  • Python学习笔记 字符串拼接
  • redis学习笔记(三):列表、集合、有序集合
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • 给新手的新浪微博 SDK 集成教程【一】
  • 京东美团研发面经
  • 利用DataURL技术在网页上显示图片
  • 前端代码风格自动化系列(二)之Commitlint
  • 三分钟教你同步 Visual Studio Code 设置
  • 设计模式 开闭原则
  • 试着探索高并发下的系统架构面貌
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 优秀架构师必须掌握的架构思维
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • ​2020 年大前端技术趋势解读
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​ssh免密码登录设置及问题总结
  • #14vue3生成表单并跳转到外部地址的方式
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (python)数据结构---字典
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (五)c52学习之旅-静态数码管
  • .bat文件调用java类的main方法
  • .form文件_SSM框架文件上传篇
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .Net Core与存储过程(一)
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .NET下的多线程编程—1-线程机制概述
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • [100天算法】-实现 strStr()(day 52)