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

📄 calculator.java

📁 用java编写计算器
💻 JAVA
字号:
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);   //将布局应用于容器   //container.setLayout(new GridBagLayout);
  //container.setLayout(new GridBagLayout);
   constraints=new GridBagConstraints();//创建组件对象
   start=true;
   result=0;
   lastCommand = "=";  //对变量赋初值
   displayField=new JTextField(20); 
   displayField.setHorizontalAlignment(JTextField.RIGHT);  //将内容放在最右端
   //displayField.setHorizontalAlignment(JTextField.LEFT); 
   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 insert = new InsertAction();
  ActionListener command = new CommandAction();
  addButton("Backspace",0,1,2,1,insert);
  addButton("CE",2,1,1,1,insert);
  addButton("C",3,1,2,1,insert);
  addButton("7",0,2,1,1,insert);
  addButton("8",1,2,1,1,insert);
  addButton("9",2,2,1,1,insert);
  addButton("/",3,2,1,1,command);
  addButton("4",0,3,1,1,insert);
  addButton("5",1,3,1,1,insert);
  addButton("6",2,3,1,1,insert);
  addButton("*",3,3,1,1,command);
  addButton("1",0,4,1,1,insert);
  addButton("2",1,4,1,1,insert);
  addButton("3",2,4,1,1,insert);
  addButton("-",3,4,1,1,command);
  addButton("0",0,5,1,1,insert);
  addButton("+/-",1,5,1,1,insert);//只显示"-"号,"+"没有实用价值
  addButton(".",2,5,1,1,insert);
  addButton("+",3,5,1,1,command);
  //addButton("=",0,6,4,1,command);
  addButton("=",4,2,1,4,command);
  setSize(300,300);
  setVisible(true);
  }
 private void addButton(String label,int row,int column,int with,int height,ActionListener listener)
{

 Button b1=new Button(label); 
 constraints.gridx=row;
 constraints.gridy=column;  
 constraints.gridwidth=with;
 constraints.gridheight=height;
// constraints.fill=GridBagConstraints.BOTH;
 b1.addActionListener(listener);
 layout.setConstraints(b1,constraints);
 container.add(b1);
 }
private class InsertAction implements ActionListener
{
  public void actionPerformed(ActionEvent event)
 {  
   String input=event.getActionCommand();  //input用于接受四则运算符
    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);


   }


}

⌨️ 快捷键说明

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