java实现简单计算器功能
童鞋们,是不是有使用计算器的时候,还要进入运行,输入calc,太麻烦了,有时候甚至还忘记单词怎么拼写,呵呵
程序员自己写代码实现,又简单,又方便啊
以下为代码(想要生成可执行工具可参考:http://www.cnblogs.com/holdon521/p/4483966.html)
package com; import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.SwingConstants; import javax.swing.UIManager; import javax.swing.border.EmptyBorder; public class Test extends JFrame{ /** * humphrey */ private static final long serialVersionUID = -9075562467166618473L; private JPanel contentPane; private JTextField display; private ActionListener insert = new InsertAction(); private ActionListener command = new CommandAction(); private double result = 0; private String lastCommand = "="; private boolean start = true; /** * Launch the application. */ public static void main(String[] args) { try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); } catch (Throwable e) { e.printStackTrace(); } EventQueue.invokeLater(new Runnable() { public void run() { try { Test frame = new Test(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public Test() { setTitle("\u8BA1\u7B97\u5668"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationByPlatform(true); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); contentPane.setLayout(new BorderLayout(0, 0)); setContentPane(contentPane); JPanel displayPanel = new JPanel(); contentPane.add(displayPanel, BorderLayout.NORTH); display = new JTextField(); display.setText("0"); display.setHorizontalAlignment(SwingConstants.RIGHT); display.setEditable(false); display.setFont(new Font("微软雅黑", Font.PLAIN, 15)); displayPanel.add(display); display.setColumns(13); JPanel buttonPanel = new JPanel(); contentPane.add(buttonPanel, BorderLayout.CENTER); buttonPanel.setLayout(new GridLayout(4, 4, 5, 5)); JButton number7Button = new JButton("7"); number7Button.addActionListener(insert); number7Button.setFont(new Font("微软雅黑", Font.PLAIN, 15)); buttonPanel.add(number7Button); JButton number8Button = new JButton("8"); number8Button.addActionListener(insert); number8Button.setFont(new Font("微软雅黑", Font.PLAIN, 15)); buttonPanel.add(number8Button); JButton number9Button = new JButton("9"); number9Button.addActionListener(insert); number9Button.setFont(new Font("微软雅黑", Font.PLAIN, 15)); buttonPanel.add(number9Button); JButton divideButton = new JButton("/"); divideButton.addActionListener(command); divideButton.setFont(new Font("微软雅黑", Font.PLAIN, 15)); buttonPanel.add(divideButton); JButton number4Button = new JButton("4"); number4Button.addActionListener(insert); number4Button.setFont(new Font("微软雅黑", Font.PLAIN, 15)); buttonPanel.add(number4Button); JButton number5Button = new JButton("5"); number5Button.addActionListener(insert); number5Button.setFont(new Font("微软雅黑", Font.PLAIN, 15)); buttonPanel.add(number5Button); JButton number6Button = new JButton("6"); number6Button.addActionListener(insert); number6Button.setFont(new Font("微软雅黑", Font.PLAIN, 15)); buttonPanel.add(number6Button); JButton multiplyButton = new JButton("*"); multiplyButton.addActionListener(command); multiplyButton.setFont(new Font("微软雅黑", Font.PLAIN, 15)); buttonPanel.add(multiplyButton); JButton number3Button = new JButton("1"); number3Button.addActionListener(insert); number3Button.setFont(new Font("微软雅黑", Font.PLAIN, 15)); buttonPanel.add(number3Button); JButton number2Button = new JButton("2"); number2Button.addActionListener(insert); number2Button.setFont(new Font("微软雅黑", Font.PLAIN, 15)); buttonPanel.add(number2Button); JButton number1Button = new JButton("3"); number1Button.addActionListener(insert); number1Button.setFont(new Font("微软雅黑", Font.PLAIN, 15)); buttonPanel.add(number1Button); JButton subtractButton = new JButton("-"); subtractButton.addActionListener(command); subtractButton.setFont(new Font("微软雅黑", Font.PLAIN, 15)); buttonPanel.add(subtractButton); JButton number0Button = new JButton("0"); number0Button.addActionListener(insert); number0Button.setFont(new Font("微软雅黑", Font.PLAIN, 15)); buttonPanel.add(number0Button); JButton dotButton = new JButton("."); dotButton.setFont(new Font("微软雅黑", Font.PLAIN, 15)); buttonPanel.add(dotButton); JButton equalButton = new JButton("="); equalButton.addActionListener(command); equalButton.setFont(new Font("微软雅黑", Font.PLAIN, 15)); buttonPanel.add(equalButton); JButton addButton = new JButton("+"); addButton.addActionListener(command); addButton.setFont(new Font("微软雅黑", Font.PLAIN, 15)); buttonPanel.add(addButton); pack(); } private class InsertAction implements ActionListener { public void actionPerformed(ActionEvent e) { String input = e.getActionCommand(); String text = display.getText(); if (start) { display.setText(""); start = false; } if (text.startsWith(".")) { display.setText("0" + display.getText() + input); } else if (text.startsWith("-0.") || text.startsWith("0.")) { display.setText(display.getText() + input); } else if (text.startsWith("-0")) { display.setText("-" + input); } else if (text.startsWith("0")) { display.setText(input); } else { display.setText(display.getText() + input); } } } private class CommandAction implements ActionListener { public void actionPerformed(ActionEvent e) { String command = e.getActionCommand(); if (start) { if (command.equals("-")) { display.setText(command); start = false; } else { lastCommand = command; } } else { calculate(Double.parseDouble(display.getText())); lastCommand = command; start = true; } } } public void calculate(double x) { char operator = lastCommand.charAt(0); switch (operator) { case '+': result += x; break; case '-': result -= x; break; case '*': result *= x; break; case '/': result /= x; break; case '=': result = x; break; } display.setText("" + result); } }
java实现简单计算器功能的更多相关文章
- [Java.web]简单计算器
项目的 WebRoot 目录下的 calculator.jsp <%@ page language="java" import="java.util.*" ...
- Java实现简单计算器、抽票程序
计算器: import java.awt.BorderLayout; import java.awt.Container; import java.awt.Font; import java.awt. ...
- java实现简单计算器
首先利用字符串数组保存计算器上的按钮的标签名 private final String[] str = {"7","8","9"," ...
- Android-Kotlin简单计算器功能
上一篇博客 Android-Kotlin-配置/入门 配置好了 AndroidStudio Kotlin 的环境: 选择包名,然后右键: 选择Class类型,会有class: 创建CounterCla ...
- s12-day04-work01 简单计算器功能实现
代码: #!/usr/local/env python3 ''' Author:@南非波波 Blog:http://www.cnblogs.com/songqingbo/ E-mail:qingbo. ...
- Python之实现简单计算器功能
一,需求分析 要求计算一串包含数字+-*/()的类似于3*( 4+ 50 )-(( 100 + 40 )*5/2- 3*2* 2/4+9)*((( 3 + 4)-4)-4)表达式的数值 二,知识点 正 ...
- 简单计算器 安卓 Android 作业
Android老师布置的课程作业——简单计算器 功能要求实现四则运算,参考界面见下图: 首先给各位老铁提供apk安装包以及项目压缩包,略表诚意~ github地址:https://github.com ...
- 完成一段简单的Python程序,用于实现一个简单的加减乘除计算器功能
#!/bin/usr/env python#coding=utf-8'''完成一段简单的Python程序,用于实现一个简单的加减乘除计算器功能'''try: a=int(raw_input(" ...
- Java语言编写计算器(简单的计算器)
Java编写的一个简单计算器,本人还比较菜,只能这样了,有点代码冗余,不能连续计算. import javax.swing.*; import java.awt.*; import java.awt. ...
随机推荐
- C#学习笔记12
1.在使用反射时,反射可以绕过安全访问级别(private.protected)修饰的类或属性,来获取需要的信息. 2.泛型的反射:可以使用Type.ContainsGenericParameters ...
- js之闭包
函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. 我们来实现一个对Array的求和.通常情况下,求和的函数是这样定义的: function sum(arr) { ret ...
- jQuery三——筛选方法、事件
一.jquery常用筛选方法 以下为jquery的常用筛选方法: 代码示例如下: <!DOCTYPE html> <html lang="en"> < ...
- CSS中font-family:中文字体对应的英文名称
中文字体 对应英文字体 宋体 SimSun 黑体 SimHei 微软雅黑 Microsoft YaHei 微软正黑体 Microsoft JhengHei 新宋体 NSimSun 新细明体 PMing ...
- js简单实现表格排序
昨天看到一篇关于表格排序的随笔,鉴于本人还只会简单的js,不会使用封装,所以自己也试了一下写这个效果.可能不太优化,原理思路是:获取行对象tr,排序tr中要比较的对象td,排序后添加回tbody.如下 ...
- mui使用技巧
1.document.addEventListener('plusready', function(){ //console.log("所有plus api都应该在此事件发生后调用,否则会出 ...
- Intellij idea配置scala开发环境
1.Intellij idea配置scala开发环境 解决Plugin Scala was not installed: No route to host Plugin Scala was not i ...
- 内存分配malloc函数注意事项。
malloc的全称是memory allocation,中文叫动态内存分配,用于向系统申请分配指定字节的内存空间 原型:extern void *malloc(unsigned int num_byt ...
- 关于 document.compatMode
今天查资料时无意发现一个以前没有注意到过的属性:document.compatMode 经过一番资料的查询后,了解到以下信息: 我们都知道IE有两种盒子模型,在不声明 !DOCTYPE 时是混杂模式 ...
- Python单元测试框架unittest使用方法讲解
这篇文章主要介绍了Python单元测试框架unittest使用方法讲解,本文讲解了unittest概述.命令行接口.测试案例自动搜索.创建测试代码.构建测试套件方法等内容,需要的朋友可以参考下 概 ...