📄 counter.java
字号:
{
tf1.setText("除数不能为零");
}
else
{
tf1.setText(""+(1/x));
}
str.setLength(0);
y=0d;
}
else if(e2.getSource()==b3)//MC为清除内存
{
m=0d;
tf2.setText("");
str.setLength(0);
}
else if(e2.getSource()==b4)//MR为重新调用存储的数据
{
if(tf2.getText().trim()!="")//有记忆数字
{
tf1.setText(""+m);
}
}
else if(e2.getSource()==b5)//MS为存储显示的数据
{
m=Double.parseDouble(tf1.getText().trim());
tf2.setText("M");
tf1.setText("0");
str.setLength(0);
}
else if(e2.getSource()==b6)//M+为将显示的数字与已经存储的数据相加要查看新的数字单击MR
{
m=m+Double.parseDouble(tf1.getText().trim());
}
else//选择的是其他的按钮
{
if(e2.getSource()==b22)//如果选择的是"0"这个数字键
{
if(tf1.getText().trim().equals("0"))//如果显示屏显示的为零不做操作
{
}
else
{
tf1.setText(str.append(e2.getActionCommand()).toString());
y=Double.parseDouble(tf1.getText().trim());
}
}
else if(e2.getSource()==b0)//选择的是“BackSpace”按钮
{
if(!tf1.getText().trim().equals("0"))//如果显示屏显示的不是零
{
if(str.length()!=1)
{
tf1.setText(str.delete(str.length()-1,str.length()).toString());//可能抛出字符串越界异常
}
else
{
tf1.setText("0");
str.setLength(0);
}
}
y=Double.parseDouble(tf1.getText().trim());
}
else//其他的数字键
{
tf1.setText(str.append(e2.getActionCommand()).toString());
y=Double.parseDouble(tf1.getText().trim());
}
}
}
catch(NumberFormatException e){
tf1.setText("数字格式异常");
}
catch(StringIndexOutOfBoundsException e){
tf1.setText("字符串索引越界");
}
}
}
class nt implements ItemListener
{
public void itemStateChanged(ItemEvent e3)
{
try{
if(e3.getSource()==c4){
String hex=tf1.getText();
int inthex=Integer.parseInt(hex,jin);//先把数变为10进制
tf1.setText(convert.decHex(inthex)) ;
jin=16;
b27.setEnabled(true);
b28.setEnabled(true);
b29.setEnabled(true);
b30.setEnabled(true);
b31.setEnabled(true);
b32.setEnabled(true);
b18.setEnabled(true);
b19.setEnabled(true);
b12.setEnabled(true);
b13.setEnabled(true);
b14.setEnabled(true);
b7.setEnabled(true);
b8.setEnabled(true);
b9.setEnabled(true);
}
if(e3.getSource()==c3)
{
String oct =tf1.getText();
int intoct=Integer.parseInt(oct,jin);
tf1.setText(convert.decOct(intoct)) ;
jin=8;
b27.setEnabled(false);
b28.setEnabled(false);
b29.setEnabled(false);
b30.setEnabled(false);
b31.setEnabled(false);
b32.setEnabled(false);
b18.setEnabled(true);
b19.setEnabled(true);
b12.setEnabled(true);
b13.setEnabled(true);
b14.setEnabled(true);
b7.setEnabled(true);
b8.setEnabled(false);
b9.setEnabled(false);
}
if(e3.getSource()==c2)
{
String bin=tf1.getText();
int intbin=Integer.parseInt(bin,jin);
tf1.setText(convert.decBin(intbin));
jin=2;
b27.setEnabled(false);
b28.setEnabled(false);
b29.setEnabled(false);
b30.setEnabled(false);
b31.setEnabled(false);
b32.setEnabled(false);
b18.setEnabled(false);
b19.setEnabled(false);
b12.setEnabled(false);
b13.setEnabled(false);
b14.setEnabled(false);
b7.setEnabled(false);
b8.setEnabled(false);
b9.setEnabled(false);
}
if(e3.getSource()==c1)
{
String dec=tf1.getText();
int intdec=Integer.parseInt(dec,jin);
// text.setText(convert.decDec(intdec)); //本句会把123变成321
tf1.setText(intdec+"");
jin=10;
b27.setEnabled(false);
b28.setEnabled(false);
b29.setEnabled(false);
b30.setEnabled(false);
b31.setEnabled(false);
b32.setEnabled(false);
b18.setEnabled(true);
b19.setEnabled(true);
b12.setEnabled(true);
b13.setEnabled(true);
b14.setEnabled(true);
b7.setEnabled(true);
b8.setEnabled(true);
b9.setEnabled(true);
}
}
catch(Exception ee)
{
System.out.println("转换出错,可能你没有输入任何字符");
tf1.setText("转换出错");
}
}
}
public static void main(String args[])
{
new Counter();
}
class objConversion
{//导师,本进制类参考了CSMD类转换例子
public void objConversion ()
{
}
public String decDec (int decNum)
{//10
String strDecNum = Integer.toString(decNum);
for (int i = strDecNum.length(); i < 3; i++)
{
strDecNum = "0" + strDecNum;
}
// return strDecNum;
return invert (strDecNum, 5);
}
public String decHex (int decNum)
{//10 to 16
String strHexNum = "";
int currentNum = 0;
while (decNum != 0)
{
if (decNum > 15)
{
currentNum = decNum % 16;
decNum /= 16;
}
else
{
currentNum = decNum;
decNum = 0;
}
switch (currentNum)
{
case 15: strHexNum += "F";
break;
case 14: strHexNum += "E";
break;
case 13: strHexNum += "D";
break;
case 12: strHexNum += "C";
break;
case 11: strHexNum += "B";
break;
case 10: strHexNum += "A";
break;
default: strHexNum += Integer.toString(currentNum);
break;
}
}
return invert (strHexNum, 2);
}
public String decOct (int decNum)
{//10 to 8
String strOctNum = "";
while (decNum != 0)
{
if (decNum > 7)
{
strOctNum += Integer.toString(decNum % 8);
decNum /= 8;
}
else
{
strOctNum += Integer.toString(decNum);
decNum = 0;
}
}
return invert (strOctNum, 3);
}
public String decBin (int decNum)
{//10 to 2
String strBinNum = "";
while (decNum != 0)
{
if (decNum > 1)
{
strBinNum += Integer.toString(decNum % 2);
decNum /= 2;
}
else
{
strBinNum += Integer.toString(decNum);
decNum = 0;
}
}
return invert (strBinNum, 8);
}
private String invert (String strNum, int minLength) //转换长度
{
String answer = "";
int length = strNum.length();
if (length < minLength)
{
for (int padding = (minLength - length); padding > 0; padding--)
{
answer += "0";
}
}
for (int i = length; i > 0; i--)
{
answer += strNum.charAt (i - 1);
}
return answer;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -