JAVA编写的计算器源代码

来源:互联网 发布:黄金分析软件哪个好 编辑:程序博客网 时间:2024/04/26 15:05

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.math.BigDecimal;
public class Calculator
{
 public static void main(String[] args)
 
  ButtonFrame frame = newButtonFrame();
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.show();
  
 }
}

class ButtonFrame extends JFrame implements ActionListener
{
 public ButtonFrame()
 {
  setTitle("喜洋洋牌计算器");
  setSize(450,300);
  JPanel panel = newJPanel();
  Container contentPane =getContentPane();
  contentPane.add(panel);
  JPanel textPanel = newJPanel();
  panel.setBackground(Color.pink);
  textPanel.setBackground(Color.cyan);
  addText = new JTextField("" ,20);
       textPanel.add(addText);
       contentPane.add(textPanel, BorderLayout.NORTH);
 
   addButton1 =newJButton("1");
   addButton2 =newJButton("2");
   addButton3 =newJButton("3");
   addButton4 =newJButton("4");
   addButton5 =newJButton("5");
   addButton6 =newJButton("6");
   addButton7 =newJButton("7");
   addButton8 =newJButton("8");
   addButton9 =newJButton("9");
   addButton10 =newJButton("0");
   addButton11 =newJButton("+");
   addButton12 =newJButton("-");
   addButton13 =newJButton("*");
     addButton14 =new JButton("/");
   addButton15 =newJButton("=");
   addButton16 =newJButton("n!");
   addButton17 =newJButton("1/x");
   addButton18 =newJButton("^");
   addButton19 =newJButton(".");
   addButton20 =newJButton("CE");
   addButton21 =newJButton("PIE");
   addButton22 =newJButton("BackSpace");
   addButton23 =newJButton("+/-");
   addButton24 =newJButton("Sqrt");
  addButton1.setForeground(Color.blue);
  addButton2.setForeground(Color.blue);
  addButton3.setForeground(Color.blue);
  addButton4.setForeground(Color.blue);
  addButton5.setForeground(Color.blue);
  addButton6.setForeground(Color.blue);
  addButton7.setForeground(Color.blue);
  addButton8.setForeground(Color.blue);
  addButton9.setForeground(Color.blue);
  addButton10.setForeground(Color.blue);
  addText.setBackground(Color.white);
  addButton20.setForeground(Color.red);
  addButton22.setForeground(Color.red);
    panel.add(addButton16);
     panel.add(addButton24);
      panel.add(addButton21);
       panel.add(addButton22);
    panel.add(addButton1);
  panel.add(addButton2);
    panel.add(addButton3);
    panel.add(addButton11);
    panel.add(addButton4);
       panel.add(addButton5);
    panel.add(addButton6);
    panel.add(addButton12);
  panel.add(addButton7);
     panel.add(addButton8);
    panel.add(addButton9);
    panel.add(addButton13);
    panel.add(addButton18);
    panel.add(addButton10);
    panel.add(addButton19);
    panel.add(addButton14);
  panel.add(addButton17);
    panel.add(addButton23);
    panel.add(addButton15);
    panel.add(addButton20);
    panel.setLayout(new GridLayout(6, 4,5,5));
    
    
    addButton1.addActionListener(this);
  addButton2.addActionListener(this);
  addButton3.addActionListener(this);
  addButton4.addActionListener(this);
  addButton5.addActionListener(this);
  addButton6.addActionListener(this);
  addButton7.addActionListener(this);
  addButton8.addActionListener(this);
  addButton9.addActionListener(this);
  addButton10.addActionListener(this);
  addButton11.addActionListener(this);
  addButton12.addActionListener(this);
  addButton13.addActionListener(this);
  addButton14.addActionListener(this);
  addButton15.addActionListener(this);
  addButton16.addActionListener(this);
  addButton17.addActionListener(this);
  addButton18.addActionListener(this);
  addButton19.addActionListener(this);
  addButton20.addActionListener(this);
  addButton21.addActionListener(this);
  addButton22.addActionListener(this);
  addButton23.addActionListener(this);
  addButton24.addActionListener(this);
  
  
  
  JMenuBar menuBar = newJMenuBar();
   setJMenuBar(menuBar);
  JMenu gyMenu =newJMenu("关于(G)");
  JMenu bzMenu =newJMenu("帮助(H)");
  JMenu bjMenu =newJMenu("编辑(E)");
  JMenu ckMenu =newJMenu("查看(V)");
   aa =new JMenuItem("版权");
     ab =new JMenuItem("作者信息");
     ac =new JMenuItem("使用说明");
   ad =newJMenuItem("注意事项");
   ae =new JMenuItem("声明");
   cut=newJMenuItem("Cut");
   paste=newJMenuItem("Paste");
   copy=newJMenuItem("Copy");
  menuBar.add(gyMenu);
  menuBar.add(bzMenu);
  menuBar.add(bjMenu);
  menuBar.add(ckMenu);
  gyMenu.add(aa);
    gyMenu.add(ab);
    bzMenu.add(ac);
  bzMenu.add(ad);
  gyMenu.add(ae);
  bjMenu.add(cut);
  bjMenu.add(copy);
  bjMenu.add(paste);
  gyMenu.setMnemonic('G');
  bzMenu.setMnemonic('H');
  bjMenu.setMnemonic('E');
  ckMenu.setMnemonic('V');
  ButtonGroup group = newButtonGroup();
  forwardItem = newJRadioButtonMenuItem("Forward");
  forwardItem.setSelected(true);
  forwardItem.setEnabled(false);
       backwardItem = new JRadioButtonMenuItem("Backward");
  backwardItem.setEnabled(false);
       group.add(forwardItem);
  group.add(backwardItem);
  ckMenu.add(forwardItem);
  ckMenu.add(backwardItem);
  
  cut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));
  paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));
  copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
  aa.addActionListener(this);
  ab.addActionListener(this);
  ac.addActionListener(this);
  ad.addActionListener(this);
  ae.addActionListener(this);
  cut.addActionListener(this);
    paste.addActionListener(this);
    copy.addActionListener(this);
  
 
  
 }
 JTextField addText;
 JButtonaddButton1,addButton2,addButton3,addButton4,
        addButton5,addButton6,addButton7,addButton8,
        addButton9,addButton10,addButton11,addButton12,
        addButton13,addButton14,addButton15,addButton16,
        addButton17,addButton18,addButton19,addButton20,addButton21,addButton22,addButton23,addButton24;
        String z= new String(""),kk ;
        double m,k,mm;
        char f;
       JMenuItem aa,ab,ac,ad,ae,cut,paste,copy;
      JRadioButtonMenuItem forwardItem, backwardItem;
 
 public void actionPerformed(ActionEvent a)
 {
  Object s=a.getSource();
 
  if(s==aa){int selection =JOptionPane.showConfirmDialog(
    ButtonFrame.this,
    "尊重知识产权,创和谐编程世界;版权所有,盗版必究!","版权",
    JOptionPane.DEFAULT_OPTION);
     }
    if(s==ab){int selection = JOptionPane.showConfirmDialog(
    ButtonFrame.this,
    "”喜洋洋“牌计算器编写小组成员:刘悦;王征,沈光辉","作者信息",
    JOptionPane.DEFAULT_OPTION);
     }
  if(s==ae){int selection =JOptionPane.showConfirmDialog(
    ButtonFrame.this,
    "由于种种不足和缺陷,如未能满足您的要求,我们向您表示真挚的歉意,我们将进一步优化和改进","声明",
    JOptionPane.DEFAULT_OPTION);
     }
  if(s==ad){int selection =JOptionPane.showConfirmDialog(
    ButtonFrame.this,
    "请将混合运算分解成分布运算;该版本只适用于简单算术运算","注意事项",
    JOptionPane.DEFAULT_OPTION);
     }
  if(s==ac){int selection =JOptionPane.showConfirmDialog(
    ButtonFrame.this,
    "该版本每次只能进行一重运算,混合运算请拆分后分布运算;运算后请及时清零;乘方运算请输入完整算式;","声明",
    JOptionPane.DEFAULT_OPTION);
     }
  
 
  
  if(s==addButton1)
    z=z+"1";
  if(s==addButton2)
    z=z+"2";
  if(s==addButton3)
    z=z+"3";
  if(s==addButton4)
    z=z+"4";
  if(s==addButton5)
    z=z+"5";
  if(s==addButton6)
    z=z+"6";
  if(s==addButton7)
    z=z+"7";
  if(s==addButton8)
       z=z+"8";
  if(s==addButton9)
    z=z+"9";
  if(s==addButton10)
    z=z+"0";
   if(s==addButton19)
    z=z+".";
       if(s==addButton20)
    z="";
   if(s==addButton21)
    z="3.1415926";
   if(s==addButton23)
   z="-"+z; 
   if(s==addButton22)
    {
    String aaa=z.substring(0,z.length()-1);
    z=aaa;
    //StringBuffer aaa=new StringBuffer(z);for(inti=1;i<=z.length();) {aaa.setCharAt(z.length()-i,'');z=new String (aaa);?????  ++i; break;}

   
    addText.setText(z);
    
  if(s==addButton11)
     { f='+';
      m=Double.parseDouble(addText.getText().trim());
      z="";}
  if(s==addButton12)
   {f='-';
      m=Double.parseDouble(addText.getText().trim());
      z="";}
  if(s==addButton13)
   {f='*';
      m=Double.parseDouble(addText.getText().trim());
      z="";}
  if(s==addButton14)
   {f='/';
      m=Double.parseDouble(addText.getText().trim());
      z="";}
  if(s==addButton16)
   {f='!';
      m=Double.parseDouble(addText.getText().trim());
      z="";}
  if(s==addButton17)
   { f='~';
      m=Double.parseDouble(addText.getText().trim());
      z="";}
   if(s==addButton18)
      {f='^';
      m=Double.parseDouble(addText.getText().trim());
      z="";} 
       
       
       if(s==addButton24)
       {f='?';
      m=Double.parseDouble(addText.getText().trim());
      z="";
       }
       
    if(s==addButton15)
    {
     if(f=='+')
     {
      k=m+Double.parseDouble(addText.getText().trim());
      addText.setText(""+k);
      z="";
     }
     if(f=='-')
     {
      k=m-Double.parseDouble(addText.getText().trim());
      addText.setText(""+k);
      z="";
     }
     if(f=='*')
     {
      k=m*Double.parseDouble(addText.getText().trim()); 
      addText.setText(""+newBigDecimal(k).setScale(3, BigDecimal.ROUND_HALF_UP));
      z="";
     }
     if(f=='/')
     {
      k=m/Double.parseDouble(addText.getText().trim());
      addText.setText(""+newBigDecimal(k).setScale(3, BigDecimal.ROUND_HALF_UP));
      z="";
     }
     if(f=='^')
     {
      k=Math.pow(m,Double.parseDouble(addText.getText().trim()));
      addText.setText(""+k);
      z="";
     }
     if(f=='!')
     {
      k=1;
      for(inti=1;i<=m;i++)
      k=k*i;
      addText.setText(""+k);
      z="";
     }
     if(f=='~')
     {
        k=1/m;
      addText.setText(""+newBigDecimal(k).setScale(3, BigDecimal.ROUND_HALF_UP));
      z="";
     }
     if(f=='?')
     {
      k=Math.sqrt(m);
       addText.setText(""+newBigDecimal(k).setScale(3, BigDecimal.ROUND_HALF_UP));
      z="";
     }
     
    }
     if(s==cut)
     {
      mm=Double.parseDouble(addText.getText().trim());
      z="";
      
     }
      if(s==copy)
       {
      
      mm=Double.parseDouble(addText.getText().trim());
     }
     if(s==paste)
     {
      
      addText.setText(""+mm);
      
     }
      
 }

 
}
 

0 0
原创粉丝点击