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

网友投稿 339 2023-05-06


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

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 inpuhttp://t=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);

}

}

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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringMVC 单文件上传与多文件上传实例
下一篇:详解Angular 中 ngOnInit 和 constructor 使用场景
相关文章

 发表评论

暂时没有评论,来抢沙发吧~