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. ...
随机推荐
- git丢弃修改
丢弃本地所有更改: git fetch origin git reset --hard origin/[对应的分支] 更改上次提交的注释: git commit --amend 会进到(vim编 ...
- HTML标签 随笔2
3-1 使用ul 添加新闻信息列表 ul-li是没有前后顺序的信息列表. 语法: <ul> <li>信息</li> <li>信息</li&g ...
- linux漏洞分析入门笔记-栈溢出
ida7.0 ubuntu16.04 lts 0x00:环境配置 使用IDA远程调试Linux程序步骤如下: 1. 在进行远程调试之前需要对Linux平台进行一些准备工作.在IDA的安装目录中的dbg ...
- 《ArcGIS Runtime SDK for Android开发笔记》
开发笔记之基础教程 ArcGIS Runtime SDK for Android 各版本下载地址 <ArcGIS Runtime SDK for Android开发笔记>——(1).And ...
- ArcGIS Enterprise 10.5.1 静默安装部署记录(Centos 7.2 minimal)- 6、总结
安装小结 安装完成后,首先我们需要将Datastore托管给Server,再将Server托管给Portal以此来完成整个单机版Enterprise 部署流程.为了测试流程是否正确,我们可以采用上传一 ...
- C语言指针的陷阱
C语言指针的陷阱 分类: C/Cpp 转自:http://blog.csdn.net/porscheyin/article/details/3461670 “C语言诡异离奇,陷阱重重,却获得了巨大 ...
- python 继承式多线程
Thread是线程类,有两种使用方法,直接传入要运行的方法或从Thread继承并覆盖run(): Thread继承 import threading import time class MyThrea ...
- hibernate 性能优化之 1+N 问题
1. 注意 session.clear()的运用,尤其在不断分页查询的时候 a) 在一个大集合中进行遍历,遍历 msg,去除其中的含有敏感字样的对象 b) 另外一种形式的内存泄漏 面试题:Java 有 ...
- js实现base64编码与解码(原生js)
一直以来很多人使用到 JavaScript 进行 base64 编码解码时都是使用的 Base64.js,但事实上,浏览器很早就原生支持 base64 的编码与解码了 以前的方式 编码: <ja ...
- 配置一个高效快速的Git环境
username and email editor difftool and mergetool alias 可以直接修改~/.gitconfig文件,也可以用命令配置一个可以实际使用的高效的Git环 ...