fuliang 发表于 2013-1-27 06:14:01

以前用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);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 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,1,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);    setSize(300,300);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 voidmain(String []args)   {   Calculator calculator=new Calculator();   calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   }}
页: [1]
查看完整版本: 以前用java写的计算器程序