JAVA编写的计算器源代码

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 = new ButtonFrame();
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.show();
  
 }
}

class ButtonFrame extends JFrame implements ActionListener
{
 public ButtonFrame()
 {
  setTitle("喜洋洋牌计算器");
  setSize(450,300);
  JPanel panel = new JPanel();
  Container contentPane = getContentPane();
  contentPane.add(panel);
  JPanel textPanel = new JPanel();
  panel.setBackground(Color.pink);
  textPanel.setBackground(Color.cyan);
  addText = new JTextField("" ,20 );
        textPanel.add(addText);
        contentPane.add(textPanel, BorderLayout.NORTH);
 
   addButton1 =new JButton("1");
   addButton2 =new JButton("2");
   addButton3 =new JButton("3");
   addButton4 =new JButton("4");
   addButton5 =new JButton("5");
   addButton6 =new JButton("6");
   addButton7 =new JButton("7");
   addButton8 =new JButton("8");
   addButton9 =new JButton("9");
   addButton10 =new JButton("0");
   addButton11 =new JButton("+");
   addButton12 =new JButton("-");
   addButton13 =new JButton("*");
      addButton14 =new JButton("/");
   addButton15 =new JButton("=");
   addButton16 =new JButton("n!");
   addButton17 =new JButton("1/x");
   addButton18 =new JButton("^");
   addButton19 =new JButton(".");
   addButton20 =new JButton("CE");
   addButton21 =new JButton("PIE");
   addButton22 =new JButton("BackSpace");
   addButton23 =new JButton("+/-");
   addButton24 =new JButton("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 = new JMenuBar();
   setJMenuBar(menuBar);
  JMenu gyMenu =new JMenu("关于(G)");
  JMenu bzMenu =new JMenu("帮助(H)");
  JMenu bjMenu =new JMenu("编辑(E)");
  JMenu ckMenu =new JMenu("查看(V)");
   aa =new JMenuItem("版权");
      ab =new JMenuItem("作者信息");
      ac =new JMenuItem("使用说明");
   ad =new JMenuItem("注意事项");
   ae =new JMenuItem("声明");
   cut=new JMenuItem("Cut");
   paste=new JMenuItem("Paste");
   copy=new JMenuItem("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 = new ButtonGroup();
  forwardItem = new JRadioButtonMenuItem("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;
 JButton addButton1,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(int i=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(""+new BigDecimal(k).setScale(3, BigDecimal.ROUND_HALF_UP));
       z="";
      }
      if(f=='/')
      {
       k=m/Double.parseDouble(addText.getText().trim());
       addText.setText(""+new BigDecimal(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(int i=1;i<=m;i++)
       k=k*i;
       addText.setText(""+k);
       z="";
      }
      if(f=='~')
      {
          k=1/m;
       addText.setText(""+new BigDecimal(k).setScale(3, BigDecimal.ROUND_HALF_UP));
       z="";
      }
      if(f=='?')
      {
       k=Math.sqrt(m);
        addText.setText(""+new BigDecimal(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);
       
      }
       
 }

 
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值