简单计算器实现
来源:互联网 发布:火车选座软件 编辑:程序博客网 时间:2024/04/29 18:28
基本思路:边输入边计算,最后显示
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javafx.scene.layout.Border;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Calculator extends JFrame {
private boolean start, flag;
private String lastCommand;
private double result1, result2;
private int count=1;
JButton display;
JPanel panel;
public Calculator() { setLayout(new BorderLayout()); result1 = 0; result2 = 0; start = true; flag = false; lastCommand = "="; display = new JButton(" "); display.setEnabled(false); add(display, BorderLayout.NORTH); ActionListener insert = new InsertAction(); ActionListener command = new CommandListener(); panel = new JPanel(new GridLayout(4, 4)); addButton("7", insert); addButton("8", insert); addButton("9", insert); addButton("/", command); addButton("4", insert); addButton("5", insert); addButton("6", insert); addButton("*", command); addButton("1", insert); addButton("2", insert); addButton("3", insert); addButton("-", command); addButton("0", insert); addButton(".", insert); addButton("=", command); addButton("+", command); add(panel, BorderLayout.CENTER); pack(); setTitle("Calculator"); setResizable(false); setSize(300, 200); setLocation(400, 400); setVisible(true); setDefaultCloseOperation(this.EXIT_ON_CLOSE);}private void addButton(String label, ActionListener listener) { Button button = new Button(label); button.addActionListener(listener); panel.add(button);}private class InsertAction implements ActionListener {// 监听数字按钮 public void actionPerformed(ActionEvent e) { String input = e.getActionCommand(); display.setText(display.getText() + input); }}private class CommandListener implements ActionListener {// 监听命令按钮 public void actionPerformed(ActionEvent e) { String command = e.getActionCommand(); if (flag) { String[] s; s = display.getText().split("\\" + lastCommand); result2 = Double.parseDouble(s[s.length-1]); System.out.println(result2); calculator(); if (command.equals("=")) display.setText("" + result1); else display.setText(display.getText() + command); lastCommand = command; //flag = false; } else { result1 = Double.parseDouble(display.getText()); display.setText(display.getText() + command); lastCommand = command; flag = true; } }}public void calculator() {// 进行计算的函数 if (lastCommand.equals("+")) { result1 += result2; } else if (lastCommand.equals("-")) { result1 -= result2; } else if (lastCommand.equals("*")) { result1 *= result2; } else if (lastCommand.equals("/")) { result1 /= result2; } else if (lastCommand.equals("=")) { result1 = result2; }}public static void main(String[] args) { new Calculator();}
}
0 0
- 计算器功能简单实现
- js简单实现计算器
- PHP实现简单计算器
- 简单的计算器实现
- 【简单计算器】实现加减乘除
- 简单计算器实现(C++)
- JSP实现简单计算器
- 简单计算器的实现
- 计算器简单实现
- 简单计算器的实现
- Java实现简单计算器
- 【Java】简单计算器实现
- JAVA实现简单计算器
- c++实现简单计算器
- 简单计算器的实现
- 计算器的简单实现
- 简单计算器的实现
- c#实现简单计算器
- ClouderaManger(CDH5.5.1)大数据安装
- 计算机视觉的一些测试数据集和源码站点
- 简图记录-代码整洁之道
- c++笔记(2):函数参数、函数调用、汉诺塔
- 复旦微电子CPU卡发卡流程
- 简单计算器实现
- DMC1380的使用:项目实例讲解
- BSOJ 4881 守望者的挑战---概率DP(更应该是递推)
- Robotframework实现Dictionary数据和Json格式数据自由转换
- 初步尝试python爬虫
- 动态连通性之union-find算法步步优化
- 不用定义第三个变量来实现两个数的交换
- 不过是有感而发
- 371_dialog透明背景