`
追梦--
  • 浏览: 37676 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

用java可视化编程实现计算器

阅读更多
我们可以用java实现一个简单的计算器
我们把它分为两个java文件一、计算器窗体部分,二、按键事件处理器部分。经过多次测试,解决了绝大部分bug,也许还有一些bug未发现,欢迎指正。
下附计算器截图,有点丑,呵呵,但是是可以用的





一、计算器窗体部分

/*****************************************************************/
package cn.lantian.Jisuan;

import javax.swing.JButton;

public class Jisuan{
public static void main(String[] args){
Jisuan js =new Jisuan();
js.init();
}
public String[] a1={"ln","log10","exp","sqrt","abs",
         "sin","cos","tan","+","*",
         "7","8","9","-","/",
         "4","5","6",".","清除",
         "1","2","3","0","=",};
    public void init(){
       //实例化一个窗体容器
       javax.swing.JFrame frame=new javax.swing.JFrame();
       frame.setTitle("计算器");
       frame.setSize(380,390);
       //实例化一个流动布局类
       java.awt.FlowLayout f1=new java.awt.FlowLayout();
       frame.setLayout(f1);   
       //将整个计算器分为两部分,两个面板容器panel1,panel2
       //第一个面板容器
       javax.swing.JPanel panel1=new javax.swing.JPanel();
       //指定高度、宽度。除JFrame(setsize();)外,都用这个指定高宽
       panel1.setPreferredSize(new java.awt.Dimension(380,120));
       //实例化一个输入框
       javax.swing.JTextField jt=new javax.swing.JTextField();
       jt.setPreferredSize(new java.awt.Dimension(330,80));
       jt.setEditable(false);
       //设置输入数据从右边开始显示
       jt.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
       panel1.add(jt);
       //第二个面板容器
       javax.swing.JPanel panel2=new javax.swing.JPanel();
       //实例化网格布局(宽,高,水平间距,垂直间距)
       java.awt.GridLayout f2=new java.awt.GridLayout(5,5,5,12);
       panel2.setLayout(f2);
       //新建一个control类
       Control con =new Control(jt);

       //添加按键
       /***************************************/
       for (int i=0;i<25;i++){
       JButton jb = new JButton(a1[i]);
       panel2.add(jb);
       jb.addActionListener(con);
       }
      
       /**************************/

       //将两个面板添加到窗体
       frame.add(panel1);
       frame.add(panel2);
       //善后工作
       frame.setDefaultCloseOperation(2);
       frame.setLocationRelativeTo(null); //主窗体屏幕居中
       frame.setVisible(true);
    }
}
/******************************************************************/




二、按键事件处理器部分

/******************************************************************/
package cn.lantian.Jisuan;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JTextField;

public class Control implements ActionListener {
private String n1 = "";
private String n2 = "";
private String fa = "";
// t1用于判断第二个数输入清屏,
/*
* t2用于判断是否在输入第二个数完后继续使用运算符,继续使用为false 若继续使用,则运算结果(类似于等号+运算符)
*/
/*
* t3标记第二次是否输入数据,防止用户在没输入第二个数时,多次按加减乘除 造成多次运算
*/
private boolean t1 = true, t2 = true, t3 = false;
private JTextField jt;
private String c;

public Control(JTextField jt) {
this.jt = jt;
}

public void actionPerformed(ActionEvent e) {
c = e.getActionCommand();
switch (c) {
case ".":
case "0":
case "1":
case "2":
case "3":
case "4":
case "5":
case "6":
case "7":
case "8":
case "9":
if (t1) {// 如果t1为真,则累加文本框中的数
jt.setText(jt.getText() + c);
} else {// 否则就清屏
jt.setText(c);
t1 = true;// 将t1设为真,让以后输入的数可以累加文本框中的内容
t3 = true;// 表明输入了第二个数,再输入运算符时可以进行运算
}
break;
case "+":
case "-":
if (jt.getText().equals("")){
jt.setText("-");
t1=true;
break;
}
case "*":
case "/":
if (t2) {// 如果不是继续运算
t1 = false;// 输入第二个数时的清屏标志
t2 = false;// 连续运算的标志
fa = c;
// 更改运算符
n1 = jt.getText();// 获取n1
t3 = false;
} else {// 若是连续运算
if (t3) {// 若两次按运算符期间输入了第二个数
n2 = jt.getText();
switch (fa) {// 根据运算符采取运算方法
case "+":
float temp1 = Float.parseFloat(n1)
+ Float.parseFloat(n2);
jt.setText("" + temp1);
break;
case "-":
float temp2 = Float.parseFloat(n1)
- Float.parseFloat(n2);
jt.setText("" + temp2);
break;
case "*":
float temp3 = Float.parseFloat(n1)
* Float.parseFloat(n2);
jt.setText("" + temp3);
break;
case "/":
float temp4 = Float.parseFloat(n1)
/ Float.parseFloat(n2);
jt.setText("" + temp4);
break;
}
fa = c;// 更改运算符
n1 = jt.getText();// 得到文本框上的数
t1 = false;// 下次输数可以清屏
t3 = false;// 将t3变为假,输入了第二个数,才变为真
} else {// 连续按运算符
fa = c;// 更改运算符
}
}
break;
case "=":
n2 = jt.getText();
if (n1 != "" && n2 != "" && fa != "" && t3)// t3为真,说明输入了第二个数
{// 如果合法,就执行等号
switch (fa) {
case "+":
float temp1 = Float.parseFloat(n1) + Float.parseFloat(n2);
jt.setText("" + temp1);
break;
case "-":
float temp2 = Float.parseFloat(n1) - Float.parseFloat(n2);
jt.setText("" + temp2);
break;
case "*":
float temp3 = Float.parseFloat(n1) * Float.parseFloat(n2);
jt.setText("" + temp3);
break;
case "/":
float temp4 = Float.parseFloat(n1) / Float.parseFloat(n2);
jt.setText("" + temp4);
break;
}
t1 = false;
t2 = true;
t3 = false;
fa = "";
n2 = "";// 将这两个值赋为空,防止数据记忆影响到后面的数据
}
break;
case "清除":
// 清屏并将所有标志变为初值
jt.setText("");
t2 = true;
t1 = true;
t3 = false;
n1 = "";
n2 = "";
fa = "";
break;
case "sin":
if (jt.getText() != "") {
jt.setText("" + Math.sin(Float.parseFloat(jt.getText())));
t1 = false;
}
break;
case "cos":
if (jt.getText() != "") {
jt.setText("" + Math.cos(Float.parseFloat(jt.getText())));
t1 = false;
}
break;
case "tan":
if (!jt.getText().equals("")) {
jt.setText("" + Math.tan(Float.parseFloat(jt.getText())));
t1 = false;
}
break;
case "ln":
if (!jt.getText().equals("")) {
jt.setText("" + Math.log(Float.parseFloat(jt.getText())));
t1 = false;
}
break;
case "log10":
if (!jt.getText().equals("")) {
jt.setText("" + Math.log10(Float.parseFloat(jt.getText())));
t1 = false;
}
break;
case "exp":
if (!jt.getText().equals("")) {
jt.setText("" + Math.exp(Float.parseFloat(jt.getText())));
t1 = false;
}
break;
case "abs":
if (!jt.getText().equals("")) {
jt.setText("" + Math.abs(Float.parseFloat(jt.getText())));
t1 = false;
}
break;
case "sqrt":
if (!jt.getText().equals("")) {
jt.setText("" + Math.sqrt(Float.parseFloat(jt.getText())));
t1 = false;
}
break;
}
}
}
  • 大小: 25 KB
分享到:
评论

相关推荐

    用java 做的 可视化 计算器

    总的来说,开发一个Java可视化的计算器涉及到GUI设计、事件处理、计算逻辑等多个方面,是一个很好的学习和实践Java编程技能的项目。通过这个项目,开发者不仅可以深入理解Java的面向对象特性,还能掌握UI设计和交互...

    可视化编程计算器

    可视化计算器,利用java所写的.如果是广工的学生更好,里面有老师所有的要求。

    可视化的JAVA计算器实现

    在IT领域,可视化JAVA计算器的实现是一个典型的GUI(图形用户界面)编程项目,它涉及到Java的基础知识、Swing或JavaFX库以及事件处理等概念。下面将详细解释这些知识点。 首先,Java是一种广泛使用的面向对象的编程...

    Java编写可视化计算器

    Java语言编写的计算器,有可视化界面,比windows自带的功能强大,而且支持大中小括号的运算。

    Java 可视化界面版计算器程序 文档.rar

    Java 制作实现的UI可视化界面版数学计算器源代码,另附编程文档,本计算器可以进行常用的加减乘除算术运算。本实例的知识点有:窗口布局器GridLayout的应用,对按钮消息的监听和响应 。运行方法:本实例代码编写完毕...

    java编写的可视化计算器

    《Java编写的可视化计算器详解》 Java编程语言以其强大的跨平台能力和丰富的类库深受程序员喜爱。在日常学习和工作中,我们经常会遇到各种编程练习,其中之一就是编写可视化计算器。本篇文章将详细探讨一个由Java...

    java实现简单图形化计算器

    在本文中,我们将深入探讨如何使用Java编程语言实现一个简单的图形化计算器,它具备基本的数学运算功能,如加法、减法、乘法、除法以及括号运算。这个计算器项目不仅涉及到基本的Java语法,还涵盖了GUI(图形用户...

    calculator_java实现计算器_

    带有可视化界面的简易计算器(1) 计算器应包含功能有:显示当前的输入/运算结果、键入0~9十个数字、10000以内的整数加减乘法、计算结果(=)、清空(C)。(2) 不需要实现混合运算功能,即键入类似“XXXPYY=”后显示...

    java实现的简单计算器

    在本文中,我们将深入探讨如何使用Java编程语言实现一个简单的可视化计算器。这个计算器适用于初学者,可以帮助他们理解和实践面向对象编程、GUI设计以及基础的数学运算。我们将详细讲解以下几个核心知识点: 1. **...

    可编程科学计算器java版

    2D绘图支持线性、曲线、函数图像等多种类型,3D绘图则可以绘制出三维空间中的函数表面,这对于理解多元函数和可视化数据具有极大的帮助。用户可以通过编程接口,自定义绘制函数或数据点,实现动态展示和交互操作。 ...

    java 课程设计 java制作计算器

    根据给定的文件信息,我们可以深入探讨如何使用Java在Applet环境下开发一个具有基本功能的计算器,以及如何通过实现监听者接口来响应用户输入。以下是对这个Java课程设计项目的详细解析: ### Java Applet环境下的...

    VC6++\《可视化编程环境》\可视化程序编程环境1.ppt

    总的来说,这个课程旨在通过实践教学,使学生熟练掌握可视化编程环境,特别是使用VC++进行Windows应用程序开发,同时强化他们对C/C++语言的理解和应用能力。通过编写计算器程序,学生将锻炼到实际问题的解决能力和...

    计算器的设计与实现.zip

    使用可视化编程环境下编写一个简易的计算器,能实现简单的加、减、乘、除四则运算,并加入特定的一些效果,如使计算器的颜色在红色,绿色和蓝色之间轮流变换等。完成诸如计算器对话框的创建、控件编辑、界面设计、...

    java实现计算器的功能

    在本文中,我们将深入探讨如何使用Java编程语言在Eclipse集成开发环境中实现一个计算器的应用。这个项目涵盖了多个Java和软件工程的基本概念,包括面向对象设计、事件处理、GUI(图形用户界面)创建以及如何在...

    JAVA训练--简易计算器

    在本项目"JAVA训练--简易计算器"中,我们主要探讨的是如何使用Java编程语言实现一个基本的图形用户界面(GUI)计算器,它包含了常见的数学运算功能。这个计算器不仅能够进行加、减、乘、除的基本四则运算,还扩展了...

    Java_用JAVA实现一个计算器_

    在Java编程语言中,实现一个可视化计算器涉及到许多关键知识点,...通过以上步骤,我们可以构建一个功能完备的Java可视化计算器。这个过程涵盖了Java GUI编程的多个核心概念,对于学习和提升Java编程技能非常有帮助。

    Java保存计算过程的计算器

    【Java保存计算过程的计算器】是一个课程设计项目,旨在提供一个功能更为丰富的计算器应用,它不仅具备了标准Windows XP计算器的基础运算功能,如加、减、乘、除、平方、立方、开方等,而且还增加了计算过程的可视化...

    一个用NetBeans做的java计算器

    【标题】"一个用NetBeans做的Java计算器"项目解析 该项目是一个基于Java编程语言的计算器应用,使用了NetBeans IDE进行开发。NetBeans是一个流行的开源集成开发环境,它提供了丰富的功能,包括代码编辑、调试、版本...

    用java模拟windows计算器

    在本文中,我们将深入探讨如何使用Java编程语言和NetBeans集成开发环境(IDE)来模拟Windows计算器。这个项目是一个学习和实践Java基础知识的好机会,包括GUI设计、事件处理和基本的算术运算。 首先,Java是面向...

    java Gui 做的计算器

    在Java编程语言中,GUI(图形用户界面)是用来创建具有可视化组件的应用程序,例如我们常见的计算器。本项目“java Gui 做的计算器”就是利用Java的Swing或JavaFX库来实现一个基本的计算器应用,它具备了计算器的...

Global site tag (gtag.js) - Google Analytics