inthex=Integer.parseInt(hex,jin);//先把数变为10进制
text.setText(convert.decHex(inthex));
再将十进制转换成相应进制。代码如下:例
String strDecNum = Integer.toString(decNum); //10
for (int i = strDecNum.length(); i < 3; i++)
{
strDecNum = "0" + strDecNum;
} // return strDecNum;
return invert (strDecNum, 5);
}
String strHexNum = ""; //10 to 16
int currentNum = 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); //A
bb.setEnabled(false); //B
在菜单条中设置了"编辑","查看""帮助"等菜单项,"编辑"中可实现"复制""粘帖"功能,在"查看"中可以选择"科学型""标准型"在"帮助"中实现"关于计算器""作者主页"点击相关按钮可实现相关其功能。代码如下:(一部分)
if(temp==copy)
{ copycontent = text.getText();
}
if(temp==about)
{
JOptionPane.showMessageDialog(frame," Java计算器 孙丹丹","关于计算器",JOptionPane.INFORMATION_MESSAGE); ;
}
if(temp==me)
{
try
{
Process p = Runtime.getRuntime().exec("explorer baidu");
} catch(Exception eeee)
实现关闭窗口函数,代码如下:
class WindowDestroyer extends WindowAdapter
{//退出窗口动作
public void windowClosing(WindowEvent e)
{
System.exit(0);
实现正负号的转换:
if (isNumber == true) //如果当前字符串首字母有'-'号,代表现在是个负数,再按下时,则将首符号去掉
{
if (s.charAt(0) == '-')
{
text.setText("");
对窗体事件进行监听,在监听者的windowClosing方法中实现窗口的关闭处理。在处理窗体的"关闭"事件的监听者则采用继承WindowAdapter的方式。
class closeW extends WindowAdapter//关闭窗口功能
{public void windowClosing(WindowEvent e)
{System.exit(0); }
(2) Computepad类,在此类中主要实现"查看"中的"标准型",即实现十进制的加减乘除基本运算。
引入的包:package my;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import my.Jisuanqi.WindowDestroyer;
import java.util.LinkedList;
import java.text.NumberFormat;
界面如下:
图3.2
界面设计思路:,一开始先把图形界面的布局考虑好。首先是计算机显示输入及输出的文本框:JTextField field=new JTextField(17);//定义最上面那个框,括号里的数字是框的长度
界面采用边缘布局,panel.setLayout(new GridLayout(4,5));四行五列排放。设计比较简单。
功能设计思路:次
程序借助链表存储数据及符号。并运用了NumberButton类来定义按钮上的数字,OperationButton类来定义按钮上的符号,先获取按钮上的数字,代码如下:
if(e.getSource() instanceof NumberButton)
{
NumberButton b=(NumberButton)e.getSource();
if(链表.size()==0)
{
int number=b.getNumber(); //获取按钮上的数字
链表.add(" "+number);
resultShow.setText(" "+number);
是否按下等号=false;
在链表中根据链表的长度和是否按下等号来判断是输出数字还是进行结算,代码如下: else if (e.getSource()==等号按钮)
{
是否按下等号=true;
if(链表.size()