用JAVA实现一个计算器的应用程序

用JAVA实现一个计算器的应用程序,要可视化界面的,要求实现基本的+,-,*,/运算急!!与windows自带的样式差不多··

oicqdaniel 2021-09-18 16:36 165 次浏览 赞 137

最新问答

  • mrs探险家

    /**
    @version 1.32 2004-05-05
    @author Cay Horstmann
    */

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;

    public class Calculator
    {
    public static void main(String[] args)
    {
    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();
    }
    }

    /**
    A panel with calculator buttons and a result display.
    */
    class CalculatorPanel extends JPanel
    {
    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();

    // add the buttons in a 4 x 4 grid

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

    /**
    Adds a button to the center panel.
    @param label the button label
    @param listener the button listener
    */
    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);
    }

    private JButton display;
    private JPanel panel;
    private double result;
    private String lastCommand;
    private boolean start;
    }

    为java核心技术的计算器实现的程序,o(∩_∩)o...哈哈

    浏览 485赞 156时间 2022-09-05

用JAVA实现一个计算器的应用程序

用JAVA实现一个计算器的应用程序,要可视化界面的,要求实现基本的+,-,*,/运算急!!与windows自带的样式差不多··