📄 jisuanqi.java
字号:
String unusual=String.valueOf(result);
存储链表.clear();
if(unusual.equals("Infinity"))
{
String s="除数不能为零。";
resultshow.setText(s);
}
else
{
存储链表.add(""+result);
存储链表.add(label);
resultshow.setText(""+result);
}
}
}
catch(Exception ee)
{
ee.toString();
}
}
}
else if(e.getSource()==等号)
//获得鼠标单击等号按钮,鼠标单击等号后,链表节点变为1,也就是说链表中只有一个数据
{
按下等号=true;
//System.out.println(存储链表.size()); //测试链表内元数个数
if(存储链表.size()==1 || 存储链表.size()==2)
{
String num=(String)存储链表.getFirst();
double result=Double.parseDouble(num);
存储链表.clear();
存储链表.add(""+result);
resultshow.setText(""+result);
}
else if(存储链表.size()==3)
{
String num1=(String)存储链表.getFirst();
String num2=(String)存储链表.getLast();
String sign=(String)存储链表.get(1);
try
{
double number1=Double.parseDouble(num1);
double number2=Double.parseDouble(num2);
double result=0;
result=result(sign,number1,number2,result);
String unusual=String.valueOf(result);
存储链表.clear();
if(unusual.equals("Infinity"))
{
String s="除数不能为零。";
resultshow.setText(s);
}
else
{
存储链表.add(""+result);
resultshow.setText(""+result);
}
}
catch(Exception ee)
{
ee.toString();
}
}
}
else if(e.getSource()==小数点) //获得鼠标单击小数点按钮
{
if(存储链表.size()==0)
{
if(!(resultshow.getText().equals("除数不能为零。")))
{
String s="0.";
存储链表.add(s);
resultshow.setText(s); //在链表节点为0时,在编辑框中显示"0."
}
}
else if(存储链表.size()==1)
{
if(按下等号==true)
{
String s="0.";
存储链表.clear();
存储链表.add(s);
resultshow.setText(s); //在按下等号后紧接着按小数点,在编辑框中显示"0."
}
else
{
String point=小数点.getLabel();
String num=(String)存储链表.getFirst();
String s=null;
if(num.indexOf(point)==-1)
{
s=num.concat(point);
}
else
{
s=num;
}
存储链表.set(0,s);
resultshow.setText(s);
}
}
else if(存储链表.size()==2)
{
String s="0.";
//由于是节点2,所以在按运算符号(+ , - , * , /)其中之一后,紧接着按小数点,在编辑框中显示"0."
存储链表.add(s);
resultshow.setText(s);
}
else if(存储链表.size()==3)
{
String point=小数点.getLabel();
String num=(String)存储链表.getLast();
String s=null;
if(num.indexOf(point)==-1)
{
s=num.concat(point);
}
else
{
s=num;
}
存储链表.set(2,s);
resultshow.setText(s);
}
}
else if(e.getSource()==退格) //获得鼠标单击退格按钮
{
if(存储链表.size()==1 || 存储链表.size()==3)
{
String num=null;
if(存储链表.size()==1) //根据节点数选择要取出的不同节点位置的数据
{
num=(String)存储链表.getFirst();
}
else
{
num=(String)存储链表.getLast();
}
if(!(存储链表.size()==1 && 按下等号==true)) //根据windows的计算器,在按了等号后,退格没用
{
if(num.length()>=1)
{
num=num.substring(0,num.length()-1);
存储链表.set(存储链表.size()-1,num);
if(num.equals("")) //判断取出的节点的数据是否变为空字符串
{
存储链表.removeLast();
}
resultshow.setText(num);
}
}
}
}
else if(e.getSource()==正负号) //获得鼠标单击正负号按钮,必须先有数字数据,不然没代码回应
{
if(存储链表.size()==1 || 存储链表.size()==3)
{
String number1=null;
if(存储链表.size()==1)
{
number1=(String)存储链表.getFirst();
//取出链表中的节点1的数据,这个数据必为数字
}
else
{
number1=(String)存储链表.getLast();
//取出链表中的节点3的数据,这个数据必为数字
}
try
{
double d=Double.parseDouble(number1);
d=-1*d;
String s=String.valueOf(d);
存储链表.set(存储链表.size()-1,s);
resultshow.setText(s);
}
catch(Exception ee)
{
ee.toString();
}
}
}
else if(e.getSource()==倒数) //获得鼠标单击倒数按钮
{
String number1=null;
if(存储链表.size()==3)
{
number1=(String)存储链表.getLast();
//取出链表中的节点3的数据,这个数据必为数字
}
else
{
number1=(String)存储链表.getFirst();
//取出链表中的节点1的数据,这个数据必为数字
}
try
{
double d=Double.parseDouble(number1);
d=1.0/d;
String s=String.valueOf(d);
if(存储链表.size()==3)
{
存储链表.set(2,s);
}
else
{
存储链表.set(0,s);
}
resultshow.setText(s);
}
catch(Exception ee)
{
ee.toString();
}
}
else if(e.getSource()==清零) //获得鼠标单击清零按钮
{
resultshow.setText("0");
存储链表.clear();
}
}
public double result(String sign,double number1,double number2,double result)
{
if(sign.equals("+"))
{
result=number1+number2;
}
else if(sign.equals("-"))
{
result=number1-number2;
}
else if(sign.equals("*"))
{
result=number1*number2;
}
else if(sign.equals("/"))
{
result=number1/number2;
}
return result;
}
public static void main(String [] args)
{
new JiSuanQi();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -