第3页
StringstrDecNum=Integer.toString(decNum);//10for(inti=strDecNum.length();i<3;i++){strDecNum="0"+strDecNum;}//returnstrDecNum;returninvert(strDecNum,5);}StringstrHexNum="";//10to16intcurrentNum=0;while(decNum!=0){if(decNum>15){currentNum=decNum%16;decNum/=16;}else{currentNum=decNum;decNum=0;}选中相应的进制后,键盘上数字会有相应的显示和隐藏,例如,在选中十进制后,A,B,C,D,E,F就会隐藏。代码如下:(部分)aa.setEnabled(false);//Abb.setEnabled(false);//B在菜单条中设置了“编辑”“查看”,“帮助”等菜单项,“编辑”中可实现“复制”“粘帖”功能,在“查看”中可以选择“科学型”“标准型”在“帮助”中实现“关于计算器”“作者主页”点击相关按钮可实现相关其功能。代码如下:(一部分)if(temp==copy){copycontent=text.getText();}if(temp==about){JOptionPane.showMessageDialog(frame,"
Java计算器孙丹丹","关于计算器",JOptionPane.INFORMATION_MESSAGE);;}if(temp==me){try{Processp=Runtime.getRuntime().exec("explorerhttp://www.baidu.com");}catch(Exceptioneeee)实现关闭窗口函数,代码如下:classWindowDestroyerextendsWindowAdapter{//退出窗口动作publicvoidwindowClosing(WindowEvente){System.exit(0);实现正负号的转换:if(isNumber==true)//如果当前字符串首字母有'-'号,代表现在是个负
第4页
数,再按下时,则将首符号去掉{if(s.charAt(0)=='-'){text.setText("");对窗体事件进行监听,在监听者的windowClosing方法中实现窗口的关闭处理。在处理窗体的“关闭”事件的监听者则采用继承WindowAdapter的方式。classcloseWextendsWindowAdapter//关闭窗口功能{publicvoidwindowClosing(WindowEvente){System.exit(0);}(2)Computepad类,在此类中主要实现“查看”中的“标准型”,即实现十进制的加减乘除基本运算。引入的包:packagemy;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjavax.swing.border.*;importmy.Jisuanqi.WindowDestroyer;importjava.util.LinkedList;importjava.text.NumberFormat;界面如下:
图3.2
界面设计思路:,一开始先把图形界面的布局考虑好。首先是
计算机显示输入及输出的文本框:JTextFieldfield=newJTextField(17);//定义最上面那个框,括号里的数字是框的长度界面采用边缘布局,panel.setLayout(newGridLayout(4,5));四行五列排放。设计比较简单。功能设计思路:次程序借助链表存储数据及符号。并运用了NumberButton类来定义按钮上的数字,OperationButton类来定义按钮上的符号,先获取按钮上的数字,代码如下:if(e.getSource()instanceofNumberButton){NumberButtonb=(NumberButton)e.getSource();
第5页
if(链表.size()==0){intnumber=b.getNumber();//获取按钮上的数字链表.add(""+number);resultShow.setText(""+number);是否按下等号=false;在链表中根据链表的长度和是否按下等号来判断是输出数字还是进行结算,代码如下:elseif(e.getSource()==等号按钮){是否按下等号=true;if(链表.size(