计算器的程序代码java_java 简单的计算器程序实例代码

java 简单的计算器程序

实现实例:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class calculator

{

public static void main(string[] args)

{

eventqueue.invokelater(new runnable()

{

public void run()

{

calculatorframe frame = new calculatorframe();

frame.setdefaultcloseoperation(jframe.exit_on_close);

frame.setvisible(true);

}

});

}

}

/**

* a frame with a calculator panel.

*/

class calculatorframe extends jframe

{

public calculatorframe()

{

settitle("calculator");

calculatorpanel panel=new calculatorpanel();

add(panel);

pack();

}

}

class calculatorpanel extends jpanel

{

private jbutton display;

private jpanel panel;

private double result;

private string lastcommand;

private boolean start;

public calculatorpanel()

{

setlayout(new borderlayout());

result=0;

lastcommand="=";

start=true;

// add the display

display=new jbutton("0");

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);

}

private void addbutton(string label,actionlistener listener)

{

jbutton button=new jbutton(label);

button.addactionlistener(listener);

panel.add(button);

}

/**

* this action inserts the button action string to the end of the display text.

*/

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);

}

}

/**

* this action executes the command that the button action string denotes.

*/

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;

}

}

}

/**

* carries out the pending calculation.

* @param x the value to be accumulated with the prior result.

*/

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);

}

}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

希望与广大网友互动??

点此进行留言吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值