java 简单的计算器程序,Java 简单的计算器

package com;

import java.awt.BorderLayout;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

public class Calculator {

public static void main(String[] args) {

CalculatorFrame frame = new CalculatorFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(200, 200);

frame.setVisible(true);

}

}

class CalculatorFrame extends JFrame {

public CalculatorFrame() {

setTitle("Calculator");

CalculatorPanel panel = new CalculatorPanel();

add(panel);

pack();

}

}

class CalculatorPanel extends JPanel {

private JLabel display;

private JPanel panel;

private double result;

private String lastCommand;

private boolean start;

public CalculatorPanel() {

setLayout(new BorderLayout());

result = 0;

lastCommand = "=";

start = true;

display = new JLabel("0", JLabel.RIGHT);

display.setEnabled(false);

add(display, BorderLayout.NORTH);

ActionListener insert = new InsertAction();

ActionListener command = new CommandAction();

panel = new JPanel();

panel.setLayout(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);

display.addMouseListener(new MouseListener(){

@Override

public void mouseClicked(MouseEvent paramMouseEvent) {

display.setText("0");

}

@Override

public void mouseEntered(MouseEvent paramMouseEvent) {

// TODO Auto-generated method stub

}

@Override

public void mouseExited(MouseEvent paramMouseEvent) {

// TODO Auto-generated method stub

}

@Override

public void mousePressed(MouseEvent paramMouseEvent) {

// TODO Auto-generated method stub

}

@Override

public void mouseReleased(MouseEvent paramMouseEvent) {

// TODO Auto-generated method stub

}

});

}

private void addButton(String label, ActionListener listener) {

JButton button = new JButton(label);

button.addActionListener(listener);

panel.add(button);

}

private class InsertAction implements ActionListener {

public void actionPerformed(ActionEvent event) {

String input = event.getActionCommand();

if (start) {

display.setText("");

start = false;

}

display.setText(display.getText() + input);

}

}

private class CommandAction implements ActionListener {

public void actionPerformed(ActionEvent event) {

String command = event.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) {

if (lastCommand.equals("+"))

result += x;

else if (lastCommand.equals("-"))

result -= x;

else if (lastCommand.equals("*"))

result *= x;

else if (lastCommand.equals("/"))

result /= x;

else if (lastCommand.equals("="))

result = x;

display.setText("" + result);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值