`
rommal7090
  • 浏览: 109203 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

利用java做一个简单的计算器

    博客分类:
  • java
阅读更多

两个类。还只是完成+、-、×、÷运算而已。GUI只是用了AWT,很简单,相信一看就能懂了。

Calculator.java

以下是引用片段:
public class Calculator{
private String result = "0";
private int op = 0,add = 1,sub = 2,mul = 3,div = 4;

private double stringToDouble(String x){
double y = Double.parseDouble(x);
return y;
}
private void operate(String x){
double x1 = stringToDouble(x);
double y = stringToDouble(result);
switch (op){
case 0:
result = x;
break;
case 1:
result = String.valueOf(y+x1);
break;
case 2:
result = String.valueOf(y-x1);
break;
case 3:
result = String.valueOf(y*x1);
break;
case 4:
if(x1!=0){
result = String.valueOf(y/x1);
}else{
result = "The divisor can't be zero!";
}
break;
}
}

public String opAdd(String x){
operate(x);
op = add;
return result;
}
public String opSubtract(String x){
operate(x);
op = sub;
return result;
}
public String opMultiply(String x){
operate(x);
op = mul;
return result;
}
public String opDivide(String x){
operate(x);
op = div;
return result;
}
public String opEquals(String x){
operate(x);
op = 0;
return result;
}
public void opClean(){
op = 0;
result = "0";
}
}

第二个
CalculatorGUI.java

以下是引用片段:
import java.awt.*;
import java.awt.event.*;
import java.util.EventObject;

public class CalculatorGUI{
private Frame f;
private Panel p1,p2;
private Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9;
private Button bPoint,bAdd,bDec,bMul,bDiv,bCal;
private TextField tf;
private String s,op;
private Calculator cal = new Calculator();
private boolean ifOp;

public CalculatorGUI(){
f = new Frame("Calculator");
p1 = new Panel();
p2 = new Panel();

b0 = new Button("0");
b1 = new Button("1");
b2 = new Button("2");
b3 = new Button("3");
b4 = new Button("4");
b5 = new Button("5");
b6 = new Button("6");
b7 = new Button("7");
b8 = new Button("8");
b9 = new Button("9");
bPoint = new Button(".");
bAdd = new Button("+");
bDec = new Button("-");
bMul = new Button("*");
bDiv = new Button("/");
bCal = new Button("=");

tf = new TextField(25);
tf.setEditable(false);


}

public void launchFrame(){
f.setSize(220,160);
f.setResizable(false);
f.addWindowListener(new myWindowListener());
p1.setLayout(new FlowLayout(FlowLayout.CENTER));
p1.add(tf);
f.add(p1,BorderLayout.NORTH);
p2.setLayout(new GridLayout(4,4));

b0.addActionListener(new setLabelText_ActionListener());
b1.addActionListener(new setLabelText_ActionListener());
b2.addActionListener(new setLabelText_ActionListener());
b3.addActionListener(new setLabelText_ActionListener());
b4.addActionListener(new setLabelText_ActionListener());
b5.addActionListener(new setLabelText_ActionListener());
b6.addActionListener(new setLabelText_ActionListener());
b7.addActionListener(new setLabelText_ActionListener());
b8.addActionListener(new setLabelText_ActionListener());
b9.addActionListener(new setLabelText_ActionListener());
bPoint.addActionListener(new setLabelText_ActionListener());
bAdd.addActionListener(new setOperator_ActionListener());
bDec.addActionListener(new setOperator_ActionListener());
bMul.addActionListener(new setOperator_ActionListener());
bDiv.addActionListener(new setOperator_ActionListener());
bCal.addActionListener(new setOperator_ActionListener());

p2.add(b7);
p2.add(b8);
p2.add(b9);
p2.add(bAdd);
p2.add(b4);
p2.add(b5);
p2.add(b6);
p2.add(bDec);
p2.add(b1);
p2.add(b2);
p2.add(b3);
p2.add(bMul);
p2.add(b0);
p2.add(bPoint);
p2.add(bCal);
p2.add(bDiv);
f.add(p2,BorderLayout.SOUTH);
f.setVisible(true);
}

public void setTextFieldText_Temp(){
if (tf.getText().length()<15 && (tf.getText().indexOf(".")==-1 || !s.equals("."))){
tf.setText(tf.getText()+s);
}else{
tf.setText((tf.getText()+s).substring(0,15));
}
}
public void setTextFieldText(){
if(ifOp){
ifOp = false;
tf.setText("");
setTextFieldText_Temp();
}else{
setTextFieldText_Temp();
}
}

public static void main(String[] args){
CalculatorGUI calculator = new CalculatorGUI();
calculator.launchFrame();
}

class myWindowListener extends WindowAdapter{
public void windowClosing(WindowEvent e){
System.exit(0);
}
}

class setLabelText_ActionListener implements ActionListener{
public void actionPerformed(ActionEvent e){
Button tempB = (Button)e.getSource();
s = tempB.getLabel();
setTextFieldText();
}
}

class setOperator_ActionListener implements ActionListener{
public void actionPerformed(ActionEvent e){
Button tempB = (Button)e.getSource();
op = tempB.getLabel();
if(op.equals("+")){
tf.setText(cal.opAdd(tf.getText()));
ifOp = true;
}else if(op.equals("-")){
tf.setText(cal.opSubtract(tf.getText()));
ifOp = true;
}else if(op.equals("*")){
tf.setText(cal.opMultiply(tf.getText()));
ifOp = true;
}else if(op.equals("/")){
tf.setText(cal.opDivide(tf.getText()));
ifOp = true;
}else if(op.equals("=")){
tf.setText(cal.opEquals(tf.getText()));
ifOp = true;
}
}
}
}
分享到:
评论

相关推荐

    利用java做一个计算器

    以上就是利用Java创建一个计算器程序所涉及的关键知识点。通过这个项目,开发者不仅可以巩固基础编程技能,还能深入理解Java的GUI编程和事件处理机制,同时锻炼面向对象思维。对于初学者来说,这是一个很好的实践...

    Java版计算器、利用java做一个简单的计算器、计算器

    `wCalculator.java` 文件很可能包含了计算器的主要逻辑,其中定义了至少一个公共类,可能是`Calculator`或者`WCalculator`,它包含了计算器的各种功能。 2. **用户界面(UI)**:Java提供了多种方式创建图形用户...

    一个简易的计算器 java小程序

    在本文中,我们将深入探讨如何创建一个简易的Java计算器程序,该程序具备基本的数学运算功能,如加、减、乘、除,还包括求平方根、取倒数、求余数以及清除操作。这个计算器的设计旨在提供用户友好的界面和简单易用的...

    用java语言做的简单计算器

    在这个“用Java语言做的简单计算器”项目中,我们看到开发者利用Java的基本语法和控制结构实现了一个基本的计算功能。让我们深入了解一下这个项目可能涉及的知识点。 1. **Java基础知识**: - **类与对象**:Java...

    java 简易计算器的实现

    首先,让我们了解一个简单的Java计算器的基本架构。它通常包含一个主类,其中定义了计算功能,以及可能的用户交互接口。在"简易计算器.java"文件中,我们可以假设有一个名为`Calculator`的类,该类包含了加法、减法...

    一个java的计算器

    一个java的计算器一个java的计算器一个java的计算器一个java的计算器一个java的计算器一个java的计算器

    java eclipse 编写的简单计算器(界面编程)

    在这个项目中,我们关注的是如何利用Eclipse创建一个简单的图形用户界面(GUI)计算器。这个计算器能够执行基本的加、减、乘、除运算。以下是关于这个主题的详细知识点: 1. **Java基础**:首先,你需要对Java编程...

    java程序设计的一个简单计算器

    在Java编程语言中,设计一个简单的计算器涉及到许多基础概念,包括UI设计、事件处理和基本的数学运算。以下是对这个简单计算器实现的详细说明: 首先,我们从标题"java程序设计的一个简单计算器"出发,了解到这是一...

    利用网格布局写的一个java计算器

    本项目利用Java的Swing库,通过网格布局(Grid Layout)设计了一个简单的计算器。Swing是Java标准版(Java SE)的一部分,提供了丰富的组件库来构建图形用户界面。网格布局是一种将容器划分为等大小网格的布局管理器...

    JAVA做的多功能计算器

    Java编写的多功能计算器是一款利用Java编程语言实现的计算工具,它不仅支持基本的加减乘除运算,还可能包括了更复杂的数学功能,如求平方根、指数、对数、三角函数等,甚至可能具备一些高级特性,如矩阵运算、复数...

    java简易计算器(仿windows自带计算器)

    在本项目中,我们将探讨如何利用Java来创建一个简易计算器,这个计算器的设计灵感来源于Windows操作系统自带的计算器。作为一个学生项目,这将有助于学习者更好地理解Java的基础知识以及GUI(图形用户界面)设计。 ...

    用java做的简单的计算器

    【标题】:“用Java做的简单计算器”是一款基于图形用户界面(GUI)的程序,它展示了初学者在学习Java编程过程中对GUI设计的理解和应用。这个项目是作者在大学一年级Java课程中的最终大作业,旨在锻炼学生的实践能力...

    java GUI简易计算器

    总之,"java GUI简易计算器"是一个结合了Java Swing组件、事件处理和基本计算逻辑的项目。它展示了如何利用非传统的方法(如用`JLabel`模拟按钮)来实现GUI应用,同时提供了学习和实践Java GUI编程的良好机会。通过...

    java编写的一个计算器

    在这个项目中,开发者利用Java的强大功能构建了一个用户友好的界面,使得用户可以通过键盘输入或者点击按钮来进行计算。 首先,我们要理解Java语言的基础。Java是一种面向对象的编程语言,以其跨平台、安全性高和...

    Java程序计算器很简单的

    下面将详细讨论Java计算器程序中的关键知识点。 1. **基本结构**:每个Java程序都始于`public class`定义,这里可能是`Calculator`类。类通常包含了主方法`main(String[] args)`,这是程序的入口点。在`main`方法中...

    Java swing编写的计算器界面.zip

    而"Java开发简单的计算器_Java_实验楼 - 实验楼.url"链接可能是指向一个在线教程,提供了具体的代码示例和步骤,指导开发者一步步实现计算器应用。 在实际编码过程中,你需要定义ActionListener,处理按钮点击事件...

    JavaJFrame实现的简易计算器

    本项目利用`JFrame` 实现了一个简单的计算器,提供了基本的算术运算功能,包括加法("+")、减法("-")、乘法("x")和除法("/")。以下将详细介绍`JFrame` 的应用以及如何通过封装来实现这个简易计算器。 首先,`JFrame`...

    利用java反射机制的建议计算器源码

    在这个“利用java反射机制的建议计算器源码”中,我们将深入探讨如何使用反射来构建一个可扩展的计算器,帮助新手更好地理解这一概念。 首先,让我们解释什么是反射。在Java中,反射机制允许我们获取类的信息(如...

    java实现的简单计算器

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

Global site tag (gtag.js) - Google Analytics