JAVA计算器原代码.doc_第1页
JAVA计算器原代码.doc_第2页
JAVA计算器原代码.doc_第3页
JAVA计算器原代码.doc_第4页
JAVA计算器原代码.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JAVA计算器原代码import java.awt.*; import java.awt.event.*; import javax.swing.*;public class MyCalculator implements ActionListener JFrame f; JMenu mEdit; JMenu mView; JMenu mHelp; JMenuItem mCopy; JMenuItem mPaste; JTextField tResult;JButton bNumber; JButton bOperator; JButton bOther; JButton bM;boolean isDouble=false;/是否为实数 int opFlag=-1; static double t1=0,t2=0,t3=0,result=0; static int opflag1=-1,opflag2=-1,flag=0,resflag=1; int preOp,currentOp=0;/标准位 double op1=0,op2=0;/操作数 double n3; StringBuffer buf=new StringBuffer(20); StringBuffer copyBoard=new StringBuffer(20);/剪贴板 StringBuffer memory = new StringBuffer(20);/M系列 StringBuffer str = new StringBuffer(); public MyCalculator() f = new JFrame(计算器ByMdou); Container contentPane = f.getContentPane(); /*菜单的创建开始*/ JMenuBar mBar = new JMenuBar(); mBar.setOpaque(true);mEdit = new JMenu(编辑(E); mEdit.setMnemonic(KeyEvent.VK_E); mCopy = new JMenuItem(复制(C); mEdit.add(mCopy); mPaste = new JMenuItem(粘贴(P); mEdit.add(mPaste);mView = new JMenu(查看(V); mView.setMnemonic(KeyEvent.VK_V); mView.add(new JMenuItem(标准型); mView.add(new JMenuItem(科学型); mView.addSeparator(); mView.add(new JMenuItem(查看分组);mHelp = new JMenu(帮助(H); mHelp.setMnemonic(KeyEvent.VK_H); mHelp.add(new JMenuItem(帮助主题); mHelp.addSeparator(); mHelp.add(new JMenuItem(关于计算器);mBar.add(mEdit); mBar.add(mView); mBar.add(mHelp); f.setJMenuBar(mBar); contentPane.setLayout(new BorderLayout(); JPanel pTop = new JPanel(); tResult = new JTextField(0.,26); tResult.setHorizontalAlignment(JTextField.RIGHT ); tResult.setEditable(false); pTop.add(tResult); contentPane.add(pTop,BorderLayout.NORTH); JPanel pBottom = new JPanel(); pBottom.setLayout(new BorderLayout(); JPanel pLeft = new JPanel(); pLeft.setLayout(new GridLayout(5,1,3,3); bM = new JButton( );bM.setEnabled(false); pLeft.add(bM); bOther = new JButton(MC); bOther.addActionListener(this); bOther.setForeground(Color.RED); bOther.setMargin(new Insets(3,2,3,2); pLeft.add(bOther); bOther = new JButton(MR); bOther.addActionListener(this); bOther.setForeground(Color.RED); bOther.setMargin(new Insets(3,2,3,2); pLeft.add(bOther); bOther = new JButton(MS); bOther.addActionListener(this); bOther.setForeground(Color.RED); bOther.setMargin(new Insets(3,2,3,2); pLeft.add(bOther); bOther = new JButton(M+); bOther.addActionListener(this); bOther.setForeground(Color.RED); bOther.setMargin(new Insets(3,2,3,2); pLeft.add(bOther); pBottom.add(pLeft,BorderLayout.WEST); JPanel pRight = new JPanel(); pRight.setLayout(new BorderLayout(); JPanel pUp = new JPanel(); pUp.setLayout(new GridLayout(1,3,3,0); bOther = new JButton(Backspace); bOther.addActionListener(this); bOther.setForeground(Color.RED); bOther.setMargin(new Insets(3,0,3,5); pUp.add(bOther); bOther = new JButton(CE); bOther.addActionListener(this); bOther.setForeground(Color.RED); pUp.add(bOther); bOther = new JButton(C); bOther.addActionListener(this); bOther.setForeground(Color.RED); pUp.add(bOther); JPanel pDown = new JPanel(); pDown.setLayout(new GridLayout(4,5,3,2); bNumber = new JButton(7); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); bNumber.setMargin(new Insets(3,3,3,3); pDown.add(bNumber); bNumber = new JButton(8); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); bNumber.setMargin(new Insets(3,3,3,3); pDown.add(bNumber); bNumber = new JButton(9); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); bNumber.setMargin(new Insets(3,3,3,3); pDown.add(bNumber); bOperator = new JButton(/); bOperator.setForeground(Color.RED); bOperator.addActionListener(this);bOperator.setMargin(new Insets(3,0,3,0); pDown.add(bOperator); bOperator = new JButton(sqrt); bOperator.addActionListener(this); bOperator.setForeground(Color.blue); bOperator.setMargin(new Insets(3,0,3,0); pDown.add(bOperator); bNumber = new JButton(4); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); bNumber.setMargin(new Insets(3,3,3,3); bNumber.setHorizontalTextPosition(JButton.LEFT); pDown.add(bNumber); bNumber = new JButton(5); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); bNumber.setMargin(new Insets(3,3,3,3); pDown.add(bNumber); bNumber = new JButton(6); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); bNumber.setMargin(new Insets(3,3,3,3); pDown.add(bNumber); bOperator = new JButton(*); bOperator.setForeground(Color.RED); bOperator.addActionListener(this); bOperator.setMargin(new Insets(3,3,3,3); pDown.add(bOperator); bOperator = new JButton(%); bOperator.setForeground(Color.blue); bOperator.addActionListener(this); bOperator.setMargin(new Insets(3,3,3,3); pDown.add(bOperator); bNumber = new JButton(1); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); bNumber.setMargin(new Insets(3,3,3,3); pDown.add(bNumber); bNumber = new JButton(2); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); bNumber.setMargin(new Insets(3,3,3,3); pDown.add(bNumber); bNumber = new JButton(3); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); bNumber.setMargin(new Insets(3,3,3,3); pDown.add(bNumber); bOperator = new JButton(-); bOperator.setForeground(Color.RED); bOperator.addActionListener(this); bOperator.setMargin(new Insets(3,3,3,3); pDown.add(bOperator); bOperator = new JButton(1/x); bOperator.setForeground(Color.blue); bOperator.addActionListener(this); pDown.add(bOperator); bNumber = new JButton(0); bNumber.setForeground(Color.blue); bNumber.addActionListener(this); bNumber.setMargin(new Insets(3,3,3,3); pDown.add(bNumber); bOperator = new JButton(+/-); bOperator.setForeground(Color.blue); bOperator.addActionListener(this); bOperator.setMargin(new Insets(3,3,3,3); pDown.add(bOperator); bOperator = new JButton(.); bOperator.setForeground(Color.blue); bOperator.addActionListener(this); bOperator.setMargin(new Insets(3,3,3,3); pDown.add(bOperator); bOperator = new JButton(+); bOperator.setForeground(Color.RED); bOperator.addActionListener(this); bOperator.setMargin(new Insets(3,3,3,3); pDown.add(bOperator); bOperator = new JButton(=); bOperator.setForeground(Color.blue); bOperator.addActionListener(this); bOperator.setMargin(new Insets(3,3,3,3); pDown.add(bOperator); pRight.add(pUp,BorderLayout.NORTH); pRight.add(pDown,BorderLayout.SOUTH); pBottom.add(pRight,BorderLayout.EAST); contentPane.add(pBottom,BorderLayout.SOUTH);f.setSize(new Dimension(320,256);f.setResizable(false); f.setVisible(true); f.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); public void actionPerformed(ActionEvent e) String s=e.getActionCommand(); if(s.equals(复制(C) String temp=tResult.getText().trim(); copyBoard.replace(0,copyBoard.length(),temp); mPaste.setEnabled(true); else if(s.equals(粘贴(P) tResult.setText(copyBoard.toString(); else if(s.equals(CE) /如果是CE则清除文本框 tResult.setText(0.); else if(s.equals(Backspace) /如果是backspace则删除一个字符。 if(!tResult.getText().trim().equals(0.) /如果文本框中有内容 if(str.length()!=1&str.length()!=0) tResult.setText(str.delete(str.length()-1,str.length().toString(); else tResult.setText(0.); str.setLength(0); op2=Double.parseDouble(tResult.getText().trim(); else if(s.equals(C) /如果是C删除当前计算。 tResult.setText(0.); op1=op2=0; str.replace(0,str.length(), ); preOp=currentOp=0; else if(s.equals(MC) /如果是MC则清除缓冲区 String temp=; memory.replace(0,memory.length(),temp); bM.setText( ); else if(s.equals(MR) /如果按键为MR则恢复缓冲区的数到文本框 tResult.setText(memory.toString(); else if(s.equals(MS) /如果按键为MS则将文本框的数存入缓冲区 String s1=tResult.getText().trim(); memory.replace(0,memory.length(),s1); bM.setText(M); else if(s.equals(M+) /如果按键为MS则将文本框值与缓冲区的数相加但不显示结果。 String temp1=tResult.getText().trim(); double dtemp=Double.parseDouble(temp1); String temp2=memory.toString(); dtemp+=Double.parseDouble(temp2); temp1=String.valueOf(dtemp); memory.replace(0,memory.length(),temp1); else if(s.equals(1/x) /如果按键为1/x则将文本框中的数据置为它的倒数。 String temp=tResult.getText().trim(); double dtemp=Double.parseDouble(temp); tResult.setText(+1/dtemp); else if(s.equals(sqrt) /如果按键为sqrt则将文本框中的内容求平方根 String temp=tResult.getText().trim(); double dtemp=Double.parseDouble(temp); tResult.setText(+Math.sqrt(dtemp); else if(s.equals(+)/+ str.setLength(0); if(currentOp=0) preOp=currentOp=1;/op1=0; op2=0; tResult.setText(+op1); else currentOp =preOp; preOp =1; switch(currentOp) case 1:op1=op1+op2;tResult.setText(+op1);break; case 2:op1=op1-op2;tResult.setText(+op1);break; case 3:op1=op1*op2;tResult.setText(+op1);break; case 4:op1=op1/op2;tResult.setText(+op1);break; else if(s.equals(-)/- str.setLength(0); if(currentOp=0) preOp=currentOp=2;/op1=op2;op2=0; tResult.setText(+op1); else currentOp =preOp; preOp =2; switch(currentOp) case 1:op1=op1+op2;tResult.setText(+op1);break; case 2:op1=op1-op2;tResult.setText(+op1);break; case 3:op1=op1*op2;tResult.setText(+op1);break; case 4:op1=op1/op2;tResult.setText(+op1);break; else if(s.equals(*)/* str.setLength(0); if(currentOp=0) preOp=currentOp=3;/op1=op2;op2=1; tResult.setText(+op1);/op1=op2; else currentOp =preOp; preOp =3; switch(currentOp) case 1:op1=op1+op2;tResult.setText(+op1);break; case 2:op1=op1-op2;tResult.setText(+op1);break; case 3:op1=op1*op2;tResult.setText(+op1);break; case 4:op1=op1/op2;tResult.setText(+op1);break; else if(s.equals(/)/ / str.setLength(0); if(currentOp=0) preOp=currentOp=4;/op2=1; tResult.setText(+op1);/op1=op2; else currentOp =preOp; preOp =4; switch(currentOp) case 1:op1=op1+op2;tResult.setText(+op1);break; case 2:op1=op1-op2;tResult.setText(+op1);break; case 3:op1=op1*op2;tResult.setText(+op1);break;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论