zoukankan      html  css  js  c++  java
  • CACULATOR

     

    /**
       @version 1.0
       @author Katongmao Lee o(∩_∩)o
    */

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

    public class Calculator1
    {
       public static void main(String[] args)
       { 
          CalculatorFrame frame = new CalculatorFrame();
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.show();
          frame.setVisible(true);
       }
    }

    /**
       A frame with a calculator panel.
    */
    class CalculatorFrame extends JFrame
    {
       public CalculatorFrame()
       {
          setTitle("Calculator");
          Container contentpane=getContentPane();
          CalculatorPanel panel = new CalculatorPanel();
          contentpane.add(panel);
          pack();
          /*This part in JDK 1.5 is described just like
           *
           *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;
    }


     

  • 相关阅读:
    不可小视视图对效率的影响力
    Maximum Margin Planning
    PhysicsBased Boiling Simulation

    Learning Behavior Styles with Inverse Reinforcement Learning
    Simulating Biped Behaviors from Human Motion Data
    Nearoptimal Character Animation with Continuous Control
    Apprenticeship Learning via Inverse Reinforcement Learning
    回报函数学习的学徒学习综述
    Enabling Realtime Physics Simulation in Future Interactive Entertainment
  • 原文地址:https://www.cnblogs.com/seebro/p/2476548.html
Copyright © 2011-2022 走看看