import javax.swing.JTextField;
public class Culator {
private static final String String = null;
JTextField op;
private String re;
/**
* @param args
*/
public static void main(String[] args) {
Culator cul = new Culator();
cul.init();
// TODO Auto-generated method stub
}
public void init(){
javax.swing.JFrame frame = new javax.swing.JFrame();
frame.setTitle("计算器");
java.awt.FlowLayout f1= new java.awt.FlowLayout();
frame.setLayout(f1);
javax.swing.JMenuBar cai = createMB();
frame.setJMenuBar(cai);
javax.swing.JButton mc = new javax.swing.JButton("MC");
op= new javax.swing.JTextField("0",25);
//设置数字从右边开始显示
op.setHorizontalAlignment(JTextField.RIGHT);
//设置按钮
javax.swing.JButton mr = new javax.swing.JButton("MR");
javax.swing.JButton ms = new javax.swing.JButton("MS");
javax.swing.JButton mp = new javax.swing.JButton("M+");
javax.swing.JButton mm = new javax.swing.JButton("M-");
javax.swing.JButton delete = new javax.swing.JButton(" ← ");
javax.swing.JButton ce = new javax.swing.JButton("CE ");
javax.swing.JButton c = new javax.swing.JButton(" C ");
javax.swing.JButton pm = new javax.swing.JButton(" ± ");
javax.swing.JButton r = new javax.swing.JButton(" √ ");
javax.swing.JButton seven = new javax.swing.JButton(" 7 ");
javax.swing.JButton eight = new javax.swing.JButton(" 8 ");
javax.swing.JButton nine = new javax.swing.JButton(" 9 ");
javax.swing.JButton under = new javax.swing.JButton(" / ");
javax.swing.JButton percent = new javax.swing.JButton(" % ");
javax.swing.JButton four = new javax.swing.JButton(" 4 ");
javax.swing.JButton five = new javax.swing.JButton(" 5 ");
javax.swing.JButton six = new javax.swing.JButton(" 6 ");
javax.swing.JButton and = new javax.swing.JButton(" * ");
javax.swing.JButton ds = new javax.swing.JButton("1/x");
javax.swing.JButton one = new javax.swing.JButton(" 1 ");
javax.swing.JButton two = new javax.swing.JButton(" 2 ");
javax.swing.JButton three = new javax.swing.JButton(" 3 ");
javax.swing.JButton m = new javax.swing.JButton(" - ");
javax.swing.JButton equal = new javax.swing.JButton(" = ");
javax.swing.JButton zero = new javax.swing.JButton(" 0 ");
javax.swing.JButton dot = new javax.swing.JButton(" . ");
javax.swing.JButton plus = new javax.swing.JButton(" + ");
//添加按钮
frame.add(op);
frame.add(mc);
frame.add(mr);
frame.add(ms);
frame.add(mp);
frame.add(mm);
frame.add(delete);
frame.add(ce);
frame.add(c);
frame.add(pm);
frame.add(r);
frame.add(seven);
frame.add(eight);
frame.add(nine);
frame.add(under);
frame.add(percent);
frame.add(four);
frame.add(five);
frame.add(six);
frame.add(and);
frame.add(ds);
frame.add(one);
frame.add(two);
frame.add(three);
frame.add(m);
frame.add(equal);
frame.add(zero);
frame.add(dot);
frame.add(plus);
frame.setSize(290,300);
//实例化一个Caculate类
Caculate cal = new Caculate(op);
//增加监听
op.addActionListener(cal);
mc.addActionListener(cal);
mr.addActionListener(cal);
ms.addActionListener(cal);
mp.addActionListener(cal);
mm.addActionListener(cal);
delete.addActionListener(cal);
ce.addActionListener(cal);
c.addActionListener(cal);
pm.addActionListener(cal);
r.addActionListener(cal);
seven.addActionListener(cal);
eight.addActionListener(cal);
nine.addActionListener(cal);
under.addActionListener(cal);
percent.addActionListener(cal);
four.addActionListener(cal);
five.addActionListener(cal);
six.addActionListener(cal);
and.addActionListener(cal);
ds.addActionListener(cal);
one.addActionListener(cal);
two.addActionListener(cal);
three.addActionListener(cal);
m.addActionListener(cal);
equal.addActionListener(cal);
zero.addActionListener(cal);
dot.addActionListener(cal);
plus.addActionListener(cal);
frame.setDefaultCloseOperation(3);
frame.setResizable(false);
frame.setVisible(true);
}
//创建一个设置TextField窗口容的函数
//public void setOp(String re){
// op.setText(re);
//}
//创建一个常带有菜单的菜单条,就加到JFrame上显示
private javax.swing.JMenuBar createMB(){
//创建菜单条
javax.swing.JMenuBar mb = new javax.swing.JMenuBar();
//创建查看菜单
javax.swing.JMenu view = new javax.swing.JMenu("查看(V)");
//创建菜单项
javax.swing.JMenuItem biaozhun = new javax.swing.JMenuItem("标准型");
javax.swing.JMenuItem kexue = new javax.swing.JMenuItem("科学型");
javax.swing.JMenuItem chengxu = new javax.swing.JMenuItem("程序员");
javax.swing.JMenuItem tongji = new javax.swing.JMenuItem("统计信息");
javax.swing.JMenuItem history = new javax.swing.JMenuItem("历史");
//将菜单项添加到菜单上
view.add(biaozhun);
view.add(kexue);
view.add(chengxu);
view.add(tongji);
view.add(history);
//创建编辑菜单
javax.swing.JMenu operation = new javax.swing.JMenu("编辑(O)");
//创建菜单项
javax.swing.JMenuItem copy = new javax.swing.JMenuItem("复制");
javax.swing.JMenuItem paste = new javax.swing.JMenuItem("黏贴");
javax.swing.JMenuItem hr = new javax.swing.JMenuItem("历史记录");
//将菜单项添加到菜单上
operation.add(copy);
operation.add(paste);
operation.add(hr);
//创建帮助菜单
javax.swing.JMenu help = new javax.swing.JMenu("帮助(H)");
//创建帮助菜单项
javax.swing.JMenuItem vh = new javax.swing.JMenuItem("查看帮助");
javax.swing.JMenuItem about = new javax.swing.JMenuItem("关于计算器");
//将菜单项添加到菜单上
help.add(vh);
help.add(about);
//加上一个分隔条
help.addSeparator();
//将菜单添加到菜单条上
mb.add(view);
mb.add(operation);
mb.add(help);
return mb;
}
}
//定义计算的类
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JTextField;
public class Caculate implements ActionListener {
//设置属性
private String data;
private JTextField text;
private String result = "0";
private boolean start_new = false;
private double last_value = 0;
private String ope = "";
private double value = 0;
public String getResult (){
return result;
}
//定义一个构造方法
public Caculate(JTextField text){
this.text = text;
}
@Override//按钮事件处理
public void actionPerformed(ActionEvent cal) {
// TODO Auto-generated method stub
data = cal.getActionCommand();
data = data.trim();
if("0123456789".indexOf(data) != -1){
numButton(data);
}else if (".".indexOf(data) != -1){
dotButton(data);
}else if ("+-*/".indexOf(data) != -1){
operateButton(data);
}else if ("=".indexOf(data)!=-1){
equalButton();
}
//System.out.println(data);
System.out.println(result);
text.setText(result);
}
//计算程序
private void numButton(String da){
if(!start_new){
result = result + da;
}
else{
result = da;
}
while (result.startsWith("0")&&!result.startsWith("0.")&&result.length()>0){
result = result.substring(1);
}
start_new = false;
}
private void dotButton(String da){
if(da.indexOf(".")!= -1){
result = result + da;
}
}
private void operateButton(String da){
if(result.length()>0){
last_value = Double.parseDouble(result);
ope = da;
start_new = true;
}
}
private void equalButton(){
value = Double.parseDouble(result);
if(ope.equals("+")){
result = String.valueOf(last_value + value);
}
else if(ope.equals("-")){
result = String.valueOf(last_value - value);
}else if(ope.equals("*")){
result = String.valueOf(last_value * value);
}else if(ope.equals("/")){
if(value == 0){
result = "ERROR";
}
else{
result = String.valueOf(last_value / value);
}
}
// 去掉结尾的“.0000...”
if (result.matches(".+\\.0+")) {
result = result.substring(0, result.lastIndexOf("."));
}
// 设置状态
start_new = true;
ope = "";
}
}
分享到:
相关推荐
"Java实现简易计算器" Java实现简易计算器是Java语言程序设计的实践项目,旨在检验和巩固专业知识,提高综合素质和能力。该项目的主要目的是使用Java语言编写一个简单的计算器,使其能够实现最基本的功能,如简单...
### Java实现简易计算器知识点概述 #### 一、实验目的与意义 - **检验与巩固专业知识:** 通过实际编程项目加深对Java语言的理解与应用,检验学生对Java基础语法、对象模型、图形用户界面(GUI)等核心概念的掌握...
Java实现简易计算器培训课件.docxJava实现简易计算器培训课件.docxJava实现简易计算器培训课件.docxJava实现简易计算器培训课件.docxJava实现简易计算器培训课件.docxJava实现简易计算器培训课件.docxJava实现简易...
java简易计算器 java简易计算器 java简易计算器java简易计算器 java简易计算器 java简易计算器java简易计算器 java简易计算器 java简易计算器java简易计算器 java简易计算器 java简易计算器java简易计算器 java简易...
在本项目中,"Java实现简易计算器.rar" 是一个基于Java Swing库构建的简单计算器应用程序。Swing是Java提供的一种用于构建图形用户界面(GUI)的工具包,它允许开发者创建丰富的桌面应用。以下是这个项目涉及到的...
在Java编程语言中,实现一个简易计算器涉及到基本的算术运算、用户输入处理以及控制流程。下面我们将深入探讨这个主题。 首先,让我们了解一个简单的Java计算器的基本架构。它通常包含一个主类,其中定义了计算功能...
可以实现十进制、二进制转换,log,sin,cos等计算,可以使用括号进行整体运算
"基于Java swing组件实现简易计算器" 本文主要介绍了基于Java swing组件实现简易计算器的知识点,以下是相关知识点的总结: 1. JFrame组件:JFrame是Java swing组件中的一种顶层容器,用于创建一个窗口框架。通过...
内容概要:这是一个介绍如何使用Java编写简易计算器应用程序的文章,其中包括了对项目结构(Calculator、CalculatorFrame 和Main)、各个功能模块及其代码实现细节以及项目的运行说明。 适用人群:对面向对象编程有...
基于java的简易计算器,实现简单的加减乘除功能,用于学习java基础知识参考
本文将以Java语言为载体,详细剖析如何实现一个简易计算器。此项目涵盖了图形用户界面(GUI)设计、事件处理、数据类型转换和基本的算术运算等核心知识点。 首先,从项目搭建开始,我们会使用Java语言进行程序编写。...
"java实现简易计算器功能" 本文主要介绍了使用Java语言实现简易计算器功能的方法,旨在帮助读者了解如何使用Java语言编写一个基本的计算器程序。 知识点1:Java GUI编程 Java GUI(Graphical User Interface)编程...
Java GUI简易计算器是一种基于图形用户界面(GUI)的计算应用程序,使用Java编程语言实现。它主要依赖于Java的Swing库来构建用户界面,并通过监听鼠标事件来处理用户的输入和计算操作。在这个项目中,`JLabel`组件被...
本项目为一个简易计算器的设计与实现,采用Java语言开发。该计算器具备基本的算术运算功能,并且集成了记忆存储功能,能够满足日常计算的基本需求。项目适用于教学演示和个人学习实践。 #### 二、关键技术点分析 #...
Java实现的简单计算器是一个基础的编程项目,它可以帮助初学者理解面向对象编程的概念以及Java语言的基本语法。在这个项目中,我们将探讨以下几个关键知识点: 1. **基本语法与数据类型**:Java是一种静态类型的...