java swing 简单计算器_Java 用swing实现简单计算器

展开全部

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class Calculator

{

public static void main(String args[])

{

32313133353236313431303231363533e59b9ee7ad9431333337373563new MainFrame("Calculator").setVisible(true);

}

}

class MainFrame extends JFrame

{

/**

*

*/

private static final long serialVersionUID = -8354514836554448949L;

MainFrame(String winname)

{

super(winname);

CalPanel cp = new CalPanel();

this.add(cp);

this.pack();

this.setLocationRelativeTo(null);

this.setResizable(false);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

class CalPanel extends JPanel

{

/**

*

*/

private static final long serialVersionUID = 5927981350284503795L;

JLabel display = null;

JPanel panel = null;

CalculatorNum num = null;

CalculatorOp op = null;

double result;

String command;

boolean start;

public CalPanel()

{

result = 0;

command = "=";

start = true;

display = new JLabel();

panel = new JPanel();

num = new CalculatorNum();

op = new CalculatorOp();

display.setText("0");

display.setFont(new Font("Times New Roman", Font.BOLD, 30));

display.setHorizontalAlignment(SwingConstants.RIGHT);

this.setLayout(new BorderLayout());

add(display, BorderLayout.NORTH);

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

addButton("7", num);

addButton("8", num);

addButton("9", num);

addButton("+", op);

addButton("4", num);

addButton("5", num);

addButton("6", num);

addButton("-", op);

addButton("1", num);

addButton("2", num);

addButton("3", num);

addButton("*", op);

addButton("0", num);

addButton(".", num);

addButton("=", op);

addButton("/", op);

add(panel, BorderLayout.CENTER);

}

private void addButton(String name, ActionListener al)

{

JButton jb = new JButton(name);

jb.addActionListener(al);

jb.setFont(new Font("Times New Roman", Font.BOLD, 40));

panel.add(jb);

}

class CalculatorNum implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

String in = e.getActionCommand();

if(start)

{

display.setText("");

start = false;

}

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

}

}

class CalculatorOp implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

String co = e.getActionCommand();

if(start)

{

if(co == "-")

{

display.setText(co);

start = false;

}

else

{

command = co;

start = true;

}

}

else

{

Calc(Double.parseDouble(display.getText()));

command = co;

start = true;

}

}

private void Calc(double d)

{

switch(command)

{

case "+":

result += d;

break;

case "-":

result -= d;

break;

case "*":

result *= d;

break;

case "/":

result /= d;

break;

case "=":

result = d;

break;

default:

break;

}

display.setText(result + "");

}

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值