JAVA认证 百分网手机站

Java编写计算器的的常见做法(2)

时间:2018-04-10 20:50:38 JAVA认证 我要投稿

Java编写计算器的的常见做法

  addButton("5", 1, 3, 1, 1, );

  addButton("6", 2, 3, 1, 1, );

  addButton("*", 3, 3, 1, 1, command);

  addButton("1", 0, 4, 1, 1, );

  addButton("2", 1, 4, 1, 1, );

  addButton("3", 2, 4, 1, 1, );

  addButton("-", 3, 4, 1, 1, command);

  addButton("0", 0, 5, 1, 1, );

  // addButton("+/-", 1, 5, 1, 1, );// 只显示"-"号,"+"没有实用价值

  addButton(".", 2, 5, 1, 1, );

  addButton("+", 3, 5, 1, 1, command);

  addButton("=", 0, 6, 4, 1, command);

  this.setResizable(false);

  setSize(180, 200);

  setVisible(true);

  }

  private void addButton(String label, int row, int column, int with,

  int height, ActionListener listener) {

  JButton button = new JButton(label);

  constraints.gridx = row;

  constraints.gridy = column;

  constraints.gridwidth = with;

  constraints.gridheight = height;

  constraints.fill = GridBagConstraints.BOTH;

  button.addActionListener(listener);

  layout.setConstraints(button, constraints);

  container.add(button);

  }

  private class InsertAction implements ActionListener {

  public void actionPerformed(ActionEvent event) {

  String input = event.getActionCommand();

  if (start) {

  displayField.setText("");

  start = false;

  if (input.equals("+/-"))

  displayField.setText(displayField.getText() + "-");

  }

  if (!input.equals("+/-")) {

  if (input.equals("Backspace")) {

  String str = displayField.getText();

  if (str.length() > 0)

  displayField.setText(str.substring(0, str.length() - 1));

  } else if (input.equals("CE") || input.equals("C")) {

  displayField.setText("0");

  start = true;

  } else

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

  }

  }

  }

  private class CommandAction implements ActionListener {

  public void actionPerformed(ActionEvent evt) {

  String command = evt.getActionCommand();

  if (start) {

  lastCommand = command;

  } else {

  calculate(Double.parseDouble(displayField.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;

  displayField.setText("" + result);

  }

  public static void main(String[] args) {

  Calculator calculator = new Calculator();

  calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  }

  }

  第四种写法:

  ——————————————————————————————————————————————

  package wanwa;

  import java.awt.*;

  import java.awt.event.*;

  import javax.swing.*;

  public class Calculator extends JFrame {

  private Container container;

  private GridBagLayout layout;

  private GridBagConstraints constraints;

  private JTextField displayField;// 计算结果显示区

  private String lastCommand;// 保存+,-,*,/,=命令

  private double result;// 保存计算结果

  private boolean start;// 判断是否为数字的开始

  public Calculator() {

  super("Calculator");

  container = getContentPane();

  layout = new GridBagLayout();

  container.setLayout(layout);

  constraints = new GridBagConstraints();

  start = true;

  result = 0;

  lastCommand = "=";

  displayField = new JTextField(20);

  displayField.setHorizontalAlignment(JTextField.RIGHT);

  constraints.gridx = 0;

  constraints.gridy = 0;

  constraints.gridwidth = 4;

  constraints.gridheight = 1;

  constraints.fill = GridBagConstraints.BOTH;

  constraints.weightx = 100;

  constraints.weighty = 100;

  layout.setConstraints(displayField, constraints);

  container.add(displayField);

  ActionListener  = new InsertAction();

  ActionListener command = new CommandAction();

  // addButton("Backspace", 0, 1, 2, 1, );

  // addButton("CE", 2, 1, 1, 1, );

  // addButton("C", 3, 1, 1, 1, );

  addButton("7", 0, 2, 1, 1, );

  addButton("8", 1, 2, 1, 1, );

  addButton("9", 2, 2, 1, 1, );

  addButton("/", 3, 2, 1, 1, command);

  addButton("4", 0, 3, 1, 1, );

  addButton("5", 1, 3, 1, 1, );

  addButton("6", 2, 3, 1, 1, );

  addButton("*", 3, 3, 1, 1, command);

  addButton("1", 0, 4, 1, 1, );

  addButton("2", 1, 4, 1, 1, );

  addButton("3", 2, 4, 1, 1, );

  addButton("-", 3, 4, 1, 1, command);

  addButton("0", 0, 5, 1, 1, );

  // addButton("+/-", 1, 5, 1, 1, );// 只显示"-"号,"+"没有实用价值

  addButton(".", 2, 5, 1, 1, );

  addButton("+", 3, 5, 1, 1, command);

  addButton("=", 0, 6, 4, 1, command);

  this.setResizable(false);

  setSize(180, 200);

  setVisible(true);

  }

  private void addButton(String label, int row, int column, int with,

  int height, ActionListener listener) {

  JButton button = new JButton(label);

  constraints.gridx = row;

  constraints.gridy = column;

  constraints.gridwidth = with;

  constraints.gridheight = height;

  constraints.fill = GridBagConstraints.BOTH;

  button.addActionListener(listener);

  layout.setConstraints(button, constraints);

  container.add(button);

  }

  private class InsertAction implements ActionListener {

  public void actionPerformed(ActionEvent event) {

  String input = event.getActionCommand();

  if (start) {

  displayField.setText("");

  start = false;

  if (input.equals("+/-"))

  displayField.setText(displayField.getText() + "-");

  }

  if (!input.equals("+/-")) {

  if (input.equals("Backspace")) {

  String str = displayField.getText();

  if (str.length() > 0)

  displayField.setText(str.substring(0, str.length() - 1));

  } else if (input.equals("CE") || input.equals("C")) {

  displayField.setText("0");

  start = true;

  } else

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

  }

  }

  }

  private class CommandAction implements ActionListener {

  public void actionPerformed(ActionEvent evt) {

  String command = evt.getActionCommand();

  if (start) {

  lastCommand = command;

  } else {

  calculate(Double.parseDouble(displayField.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;

  displayField.setText("" + result);

  }

  public static void main(String[] args) {

  Calculator calculator = new Calculator();

  calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  }

  }

【Java编写计算器的的常见做法】相关文章:

1.Java定时器代码的编写

2.简单的Java程序编写

3.Java怎么编写Oracle存储过程

4.java编写即时聊天程序

5.Java怎么编写走马灯程序

6.Java程序编写记事本方法大全

7.Java常见的码块有哪些

8.java运行常见异常举例