⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calculator.java

📁 运用java界面编辑计算器的功能
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.math.*;

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("计算器");
 	  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 button in a 4*4 grid
  		
  		panel = new JPanel();
  		panel.setLayout(new GridLayout(4,4));
  		
  		addButton("7",insert);
  		addButton("8",insert);
  		addButton("9",insert);
  		addButton("/",command);
  		addButton("sqrt",command);
  		
  		addButton("4",insert);
  		addButton("5",insert);
  		addButton("6",insert);
  		addButton("*",command);
  		addButton("%",command);
  		
  		addButton("1",insert);
  		addButton("2",insert);
  		addButton("3",insert);
  		addButton("-",command);
  		addButton("1/x",command);
  		
  		addButton("0",insert);
  		addButton("+/-",command);
  		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;
      	else if(lastCommand.equals("sqrt")) result = Math.sqrt(x);
        else if(lastCommand.equals("%")) result %= x;
        else if(lastCommand.equals("1/x")) result = 1/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;
      
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -