您好,欢迎访问三七文档
计算器本计算器有显示过程和不显示过程两种功能,其中不显示过程为普通计算器,类似于windows自带的计算器;显示过程的,可以显示预算过程,其中包含所需应用的部分函数,以及格式化功能(最左上角,第一个键格式化,然后输入需要格式化的数位,然后点第二个数,显示格式化结果),当一次运算结束后,会在右边自动显示运算过程,并且运算过程处有保存,复制粘贴清除功能。代码如下:主类:importZF.*;publicclassJiSuanQi{publicstaticvoidmain(String[]args){Calculatorc=newCalculator(计算器);}}包ZF中的类:Calculator类packageZF;/***计算器布局界面*/importjava.io.*;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;publicclassCalculatorextendsJFrameimplementsActionListener{staticintxg=1;//用于判断是否显示过程,初始状态为显示JSplitPanejsp1,jsp2,jsp3;staticJTextFieldjtf;//文本框staticJTextAreajta;//保存等的历史文本区publicstaticStringzc;//用来暂时存储数字,实现第一个菜单选项JScrollPaneJS;//专门用于给文本区提供滚动条publicstaticFileDialogload,save;//声明引入对话框BufferedReaderin;//FileReaderreader;//JP1jp1;JP2jp2;JP3jp3;JP4jp4;JP5jp5;//菜单条JMenuBarmb;JMenum0,m1,m2;JMenuItemm01,m02,m03,m04,m11,m12,m21,m22;publicCalculator(Strings){super(s);Containercon=getContentPane();//桌面jp1=newJP1();jp2=newJP2();jp3=newJP3();jp4=newJP4();jp5=newJP5();jta=newJTextArea();jta.setEditable(false);JS=newJScrollPane(jta);jsp1=newJSplitPane(JSplitPane.VERTICAL_SPLIT,false,jp1,jp2);jsp2=newJSplitPane(JSplitPane.VERTICAL_SPLIT,false,jp3,JS);jsp3=newJSplitPane(JSplitPane.VERTICAL_SPLIT,false,jp4,jp5);jtf=newJTextField();jtf.setText(String.valueOf(0));jtf.setEditable(false);jtf.setBackground(Color.white);load=newFileDialog(this,读取历史运算过程,FileDialog.LOAD);load.setVisible(false);load.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){load.setVisible(false);}});save=newFileDialog(this,保存历史运算过程,FileDialog.SAVE);save.setVisible(false);save.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){save.setVisible(false);}});//菜单条mb=newJMenuBar();m0=newJMenu(编辑);m1=newJMenu(查看);m2=newJMenu(帮助);m01=newJMenuItem(复制);m02=newJMenuItem(粘贴);m03=newJMenuItem(读取);m04=newJMenuItem(关闭);m01.addActionListener(this);m02.addActionListener(this);m03.addActionListener(this);m04.addActionListener(this);m11=newJMenuItem(不显过程);m12=newJMenuItem(显示过程);m11.addActionListener(this);m12.addActionListener(this);m21=newJMenuItem(帮助主题);m22=newJMenuItem(关于计算器);m21.addActionListener(this);m22.addActionListener(this);m0.add(m01);m0.add(m02);m0.add(m03);m0.add(m04);m1.add(m11);m1.add(m12);m2.add(m21);m2.addSeparator();m2.add(m22);mb.add(m0);mb.add(m1);mb.add(m2);setJMenuBar(mb);con.add(jtf,BorderLayout.NORTH);con.add(jsp1,BorderLayout.CENTER);con.add(jsp2,BorderLayout.EAST);con.add(jsp3,BorderLayout.WEST);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);setBounds(100,100,800,260);setResizable(false);setVisible(true);validate();}publicvoidactionPerformed(ActionEvente){if(!jtf.getText().equals(error)){if(e.getSource()==m01){zc=jtf.getText();}elseif(e.getSource()==m02){if(zc!=null){if(xg==1){if(jtf.getText().equals(0))jtf.setText(zc);elsejtf.setText(jtf.getText()+zc);}elsejtf.setText(zc);}}}if(e.getSource()==m03){//读取文件Calculator.load.setVisible(true);Calculator.jta.setText(null);Strings;if(Calculator.load.getFile()!=null){try{Filefile=newFile(Calculator.load.getDirectory(),Calculator.load.getFile());reader=newFileReader(file);in=newBufferedReader(reader);while((s=in.readLine())!=null){Calculator.jta.append(s+'\n');}in.close();reader.close();}catch(IOExceptione2){Calculator.jta.append(读取错误);}}}elseif(e.getSource()==m04){System.exit(0);}elseif(e.getSource()==m11){//换窗体大小,同时换规则setSize(320,260);remove(jsp2);remove(jsp3);JP2.sf=0;jtf.setText(String.valueOf(0));xg=0;//改变菜单选项的可选性m03.setEnabled(false);m04.setEnabled(false);//换对齐方式JP2.sf=0;jtf.setEditable(false);jtf.setBackground(Color.white);jtf.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);validate();}elseif(e.getSource()==m12){setSize(800,260);add(jsp2,BorderLayout.EAST);add(jsp3,BorderLayout.WEST);JP2.sf=0;jtf.setText(String.valueOf(0));xg=1;m03.setEnabled(true);m04.setEnabled(true);JP2.eg=0;jtf.setEditable(false);jtf.setBackground(Color.white);jtf.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);validate();}elseif(e.getSource()==m21){JOptionPane.showMessageDialog(this,本计算器以模仿Windows系统自带计算器为主,详情请参照系统计算器“帮助主题”。,帮助主题,JOptionPane.INFORMATION_MESSAGE);}elseif(e.getSource()==m22){newJA(关于计算器);}}}JA类packageZF;importjava.awt.*;importjavax.swing.*;publicclassJAextendsJFrame{JLabel[]jl=newJLabel[6];JTextField[]jtf1=newJTextField[6];JTextField[]jtf2=newJTextField[6];publicJA(Strings){super(s);setLayout(newGridLayout(6,3));jl[0]=newJLabel(制作组:);jl[1]=newJLabel(组成员:);for(inti=2;i6;i++){jl[i]=newJLabel();}jtf1[0]=newJTextField(小叮当);jtf1[1]=newJTextField(曹剑);jtf1[2]=newJTextField(李剑);jtf1[3]=newJTextField(王斌);jtf1[4]=newJTextField(翟鹏翔);jtf1[5]=newJTextField(奥然);jtf2[0]=newJTextField(第一组);jtf2[1]=newJTextField(项目经理);for(inti=2;i6;i++){jtf2[i]=newJTextField(程序员);}for(inti=0;i6;i++){jtf1[i].setEditable(false);jtf2[i].setEditable(false);}for(inti=0;i6;i++){add(jl[i]);add(jtf1[i]);add(jtf2[i]);}setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);setBounds(100,100,250,250);setVisible(true);validate();}}JP1类packageZF;importjava.awt.*;importjavax.swing.*;importjava.awt.ev
本文标题:Java计算器源码
链接地址:https://www.777doc.com/doc-6499773 .html