java 计算器_如何用java写一个简单的计算器

展开全部

import java.awt.Button;

62616964757a686964616fe59b9ee7ad9431333264656137import java.awt.Color;

import java.awt.Frame;

import java.awt.GridLayout;

import java.awt.Panel;

import java.awt.TextField;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

public class Calculator extends WindowAdapter implements MouseListener {

private String first;

private String second;

private String operator;

private Button zero = new Button("0");

private Button one = new Button("1");

private Button two = new Button("2");

private Button three = new Button("3");

private Button four = new Button("4");

private Button five = new Button("5");

private Button six = new Button("6");

private Button seven = new Button("7");

private Button eight = new Button("8");

private Button nine = new Button("9");

private Button decimal = new Button(".");

private Button equal = new Button("=");

private Button add = new Button("+");

private Button sub = new Button("-");

private Button mul = new Button("*");

private Button div = new Button("/");

private TextField input = new TextField();

private Button CE = new Button("CE");

private Button DEL = new Button("Del");

public static void main(String[] args) {

new Calculator();

}

public Calculator(){

Frame f = new Frame("Calculator");

f.add("North", input);

Panel keys = new Panel();

f.add(keys, "Center");

keys.setLayout(new GridLayout(4, 4));

keys.add(seven);

keys.add(eight);

keys.add(nine);

keys.add(add);

keys.add(four);

keys.add(five);

keys.add(six);

keys.add(sub);

keys.add(one);

keys.add(two);

keys.add(three);

keys.add(mul);

keys.add(zero);

keys.add(decimal);

keys.add(equal);

keys.add(div);

zero.addMouseListener(this);

one.addMouseListener(this);

two.addMouseListener(this);

three.addMouseListener(this);

four.addMouseListener(this);

five.addMouseListener(this);

six.addMouseListener(this);

seven.addMouseListener(this);

eight.addMouseListener(this);

nine.addMouseListener(this);

add.addMouseListener(this);

sub.addMouseListener(this);

div.addMouseListener(this);

mul.addMouseListener(this);

equal.addMouseListener(this);

decimal.addMouseListener(this);

Panel addtionalPanel = new Panel();

addtionalPanel.setLayout(new GridLayout(1, 2));

addtionalPanel.add(CE);

addtionalPanel.add(DEL);

CE.setBackground(Color.green);

DEL.setBackground(Color.cyan);

CE.addMouseListener(this);

DEL.addMouseListener(this);

f.add("South", addtionalPanel);

f.addWindowListener(this);

f.setVisible(true);

f.setLocation(200, 300);

f.setSize(200, 200);

}

public void windowClosing(WindowEvent e) {

System.exit(0);

}

public void mouseClicked(MouseEvent e) {

Button btn = (Button) e.getSource();

String key = btn.getActionCommand().trim();

if(btn == one || btn == two || btn == three || btn == zero

|| btn == four || btn == five || btn == six

|| btn == seven || btn == eight || btn == nine){

if(isBlank(operator)){

if(isBlank(first)){

first = key;

}else{

first += key;

}

input.setText(first);

}else{

if(isBlank(second)){

second = key;

}else{

second += key;

}

input.setText(second);

}

}else if(btn == decimal){

if(isBlank(operator)){

if(isBlank(first)){

first = "0.";

input.setText(first);

}else{

if(first.indexOf(".") == -1){

first += ".";

input.setText(first);

}

}

}else{

if(isBlank(second)){

second = "0.";

input.setText(second);

}else{

if(second.indexOf(".") == -1){

second += ".";

input.setText(second);

}

}

}

}else if(btn == equal){

if(!isBlank(second) && !isBlank(first) && !isBlank(operator)){

double result = 0.0D;

if(operator.equals("+")){

result = Double.parseDouble(first) + Double.parseDouble(second);

}else if(operator.equals("-")){

result = Double.parseDouble(first) - Double.parseDouble(second);

}else if(operator.equals("*")){

result = Double.parseDouble(first) * Double.parseDouble(second);

}else if(operator.equals("/")){

result = Double.parseDouble(first) / Double.parseDouble(second);

}

int value = (int)Math.round(result);

if(value == result){

input.setText(String.valueOf(value));

}else{

input.setText(String.valueOf(result));

}

first = String.valueOf(result);

second = null;

operator = null;

}

}else if(btn == add || btn == sub || btn == div || btn == mul){

if(!isBlank(first)){

if(!isBlank(operator) && !isBlank(second)){

if(operator.equals("+")){

first = String.valueOf(Double.parseDouble(first) + Double.parseDouble(second));

}else if(operator.equals("-")){

first = String.valueOf(Double.parseDouble(first) - Double.parseDouble(second));

}else if(operator.equals("*")){

first = String.valueOf(Double.parseDouble(first) * Double.parseDouble(second));

}else if(operator.equals("/")){

first = String.valueOf(Double.parseDouble(first) / Double.parseDouble(second));

}

second = null;

}

operator = key;

}

}else if(btn == CE){

first = null;

second = null;

operator = null;

input.setText(null);

}else if(btn == DEL){

if(isBlank(operator)){

if(!isBlank(first)){

first = first.substring(0, first.length() -1);

input.setText(first);

}

}else{

if(!isBlank(second)){

second = second.substring(0, second.length() -1);

input.setText(second);

}

}

}

}

private boolean isBlank(String str){

return str == null || str.trim().equals("");

}

public void mousePressed(MouseEvent e) {}

public void mouseReleased(MouseEvent e) {}

public void mouseEntered(MouseEvent e) {}

public void mouseExited(MouseEvent e) {}

}

本回答被提问者采纳

2Q==

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值