java代码 计算器_java代码---------计算器实现

总结:虽然,没有人会帮你到底,凭什么要对你怜香惜玉

注意实现哪一个运算就把相关代码放在else if这个判断语句里面

3a468fd6c1ae9bd52e6087721213b33d.png

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代码------计算器

总结:我用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等语句,完成计算器功能.

对一致性Hash算法,Java代码实现的深入研究

一致性Hash算法 关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法.一致性 ...

怎样编写高质量的java代码

代码质量概述     怎样辨别一个项目代码写得好还是坏?优秀的代码和腐化的代码区别在哪里?怎么让自己写的代码既漂亮又有生命力?接下来将对代码质量的问题进行一些粗略的介绍.也请有过代码质量相关经验的朋友 ...

数据结构笔记--二叉查找树概述以及java代码实现

一些概念: 二叉查找树的重要性质:对于树中的每一个节点X,它的左子树任一节点的值均小于X,右子树上任意节点的值均大于X. 二叉查找树是java的TreeSet和TreeMap类实现的基础. 由于树的递 ...

随机推荐

ASP.NET MVC3 Model验证总结(转)

推荐:   ASP.NET MVC的Model元数据与Model模板:预定义模板 http://www.cnblogs.com/artech/archive/2012/05/02/model-meta ...

ExtJS入门教程04,这是一个超级好用的grid

今天进行extjs入门教程的第四篇:grid. 来一份grid尝尝 小伙伴们都知道extjs的grid功能强大,更清楚功能强大的东西用起来必然会复杂.今天我们就从最简单的grid开始讲解. 先来一个最 ...

STL各种容器的使用时机详解

C++标准程序库提供了各具特长的不同容器.现在的问题是:该如何选择最佳的容器类别?下表给出了概述. 但是其中有些描述可能不一定实际.例如:如果你需呀处理的元素数量很少,可以虎落复杂度,因为线性算法通常 ...

SQL 2008下载地址以及全新安装详细过程

本博文将详细介绍如何安装SQL 2008以及在这个安装过程中每个选项的意思,如何选择使用什么和不使用什么等等琐碎的东东. 下面——开始了!!!SHOW TIME~~~先提供各种程序下载地址:SQL 2 ...

C# 多线程参数的使用

一个参数: Thread.Start方法可以带一个参数: public static void Main() { Thread t = new Thread(new ParameterizedThre ...

sublime text高亮less

1.打开sublime,ctrl+shift+p打开命令面板,找到package control:install Package,然后选择less2css,回车. 2.继续ctrl+shift+p打开 ...

插入标记 方法 insertAdjacentHTML

html5新增的插入标记方法,insertAdjacentHTML() 可以接受2个参数 插入位置和要插入的 HTML 文本.第一个参数必须是下列值之一: "beforebegin&quot ...

React-TodoList

React入门最好的学习实例-TodoList 前言 React 的核心思想是:封装组件,各个组件维护自己的状态和 UI,当状态变更,自动重新渲染整个组件. 最近前端界闹的沸沸扬扬的技术当属react ...

ssh免秘钥登录

简介 SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层基础上的安全协议.SSH 是目前较可靠,专为远程 ...

Micropython TPYBoard ADC的使用方法

基本用法 import pybadc = pyb.ADC(Pin('Y11')) # create an analog object from a pinadc = pyb.ADC(pyb.Pin.b ...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值