⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 counter.java

📁 设计一个复杂的计算器
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    	           	    tf1.setText(s+"c");
    	           	}
    			}
    			else if(label.equals("d"))
    		    {
    			    String s=tf1.getText();
    			    if(s.equals("0"))
    			    {
    			        tf1.setText("d");
    		        }
    		        else
    		        {
    	           		tf1.setText(s+"d");
    	            }
    			}
    			else if(label.equals("e"))
    			{
    			    String s=tf1.getText();
    			    if(s.equals("0"))
    			    {
    			        tf1.setText("e");
    		        }
    		        else
    		        {
    	           	    tf1.setText(s+"e");
    	            }
    		    }
    			else if(label.equals("f"))
    			{
    			    String s=tf1.getText();
    			    if(s.equals("0"))
    			    {
    			        tf1.setText("f");
    		        }
    		        else
    		        {
    	           	    tf1.setText(s+"f");
    	           	}
    			}
    			
    			else if(label.equals("CE"))//选择"CE"清零 e2.getSource()获取事件源对象
    			{
    				tf1.setText("0");//把显示屏清零 
                    str.setLength(0);//清空字符串缓冲区以准备接收新的输入运算数 
    			}
    			else if(label.equals("C"))//选择"C"清零
    			{
    				tf1.setText("0");//把显示屏清零 
                    str.setLength(0); 
    			}
    			else if(label.equals("+/-"))//单击"+/-"选择输入的运算数是正数还是负数 
    			{
    				x=Double.parseDouble(tf1.getText().trim()); //trim -- 去除一个字符串开始和结尾的空白//Double.parseDouble(String s) 以字符串作为参数,返回相应的double型数据;返回str字符串被去除首尾空白后的新字符串,就是去掉字符串头和尾的空格.
                    tf1.setText(""+(-x));
    			}
    			else if(label.equals("+"))//单击加号按钮获得x的值和z的值并清空y的值 
    			{
    				x=Double.parseDouble(tf1.getText().trim()); 
                    str.setLength(0);//清空缓冲区以便接收新的另一个运算数 
                    y=0d; 
                    z=0;
    			}
    			else if(label.equals("-"))//单击减号按钮获得x的值和z的值并清空y的值 
    			{
    				x=Double.parseDouble(tf1.getText().trim()); 
                    str.setLength(0); 
                    y=0d; 
                    z=1; 
    			}
    			else if(label.equals("*"))//单击乘号按钮获得x的值和z的值并清空y的值
    			{
    				x=Double.parseDouble(tf1.getText().trim()); 
                    str.setLength(0); 
                    y=0d; 
                    z=2; 
    			}
    			else if(label.equals("/"))//单击除号按钮获得x的值和z的值并空y的值 
    			{
    				x=Double.parseDouble(tf1.getText().trim()); 
                    str.setLength(0); 
                    y=0d; 
                    z=3; 
    			}
    			else if(label.equals("="))//单击等号按钮输出计算结果 
    			{
    				str.setLength(0); 
                    switch(z) 
                    {
                    	case 0 : tf1.setText(""+(x+y));break; 
                        case 1 : tf1.setText(""+(x-y));break; 
                        case 2 : tf1.setText(""+(x*y));break; 
                        case 3 : tf1.setText(""+(x/y));break; 
                        //case 4 : tf1
                    }
    			}
    			else if(label.equals("."))//单击"."按钮输入小数 
    			{
    				if(tf1.getText().trim().indexOf('.')!=-1)//判断字符串中是否已经包含了小数点;indexOf('.')搜索小数点;indexOf()进行判断,如果返回的不是-1,则该字符串含有indexOf()指定的子字符串
    				{
    					
    				}
    				else//如果没有小数点 
    				{
    					if(tf1.getText().trim().equals("0"))//如果初时显示为0 
    					{
    						str.setLength(0); 
                            tf1.setText((str.append("0"+e2.getActionCommand())).toString()); //append(String s) 将字符串添加到文本域的末尾
    					}
    					else if(tf1.getText().trim().equals(""))//如果初时显示为空则不做任何操作 
    					{
    						
    					}
    					else 
    					{
    						tf1.setText(str.append(e2.getActionCommand()).toString()); //getActionCommand() 用来获取事件对象的命令名
    					}
    				}
    				y=0d; 
    			}
    			else if(label.equals("sqrt"))//求平方根 
    			{
    				x=Double.parseDouble(tf1.getText().trim()); 
                    tf1.setText("数字格式异常"); 
                    if(x<0) 
                    tf1.setText("负数没有平方根"); 
                    else 
                    tf1.setText(""+Math.sqrt(x)); 
                    str.setLength(0); 
                    y=0d; 
    			}
    			else if(label.equals("%"))//单击了"%"按钮 
    			{
    				x=Double.parseDouble(tf1.getText().trim()); 
                    tf1.setText(""+(0.01*x)); 
                    str.setLength(0); 
                    y=0d; 
    			}
    			else if(label.equals("1/X"))//单击了"1/X"按钮
    			{
    				x=Double.parseDouble(tf1.getText().trim()); 
                    if(x==0) 
                    {
                    	tf1.setText("分母不能为零");
                    }
                    else
                    {
                    	tf1.setText(""+(1/x));
                    }
                    str.setLength(0); 
                    y=0d;
    			}
    			
    			else if(label.equals("2to10"))
    			{
    				String s=tf1.getText();
    				int x=Integer.parseInt(s,2);//二进制数转换到十进制数
    				tf1.setText(""+x);
    				str.setLength(0); 
                    y=0d; 
    			}
    			else if(label.equals("8to10"))
    			{
    				String s=tf1.getText();
    				int x=Integer.parseInt(s,8);//八进制数转换到十进制数
    				tf1.setText(""+x);
    				str.setLength(0); 
                    y=0d; 
    			}
    			else if(label.equals("16to10"))
    			{
    				String s=tf1.getText();
    				int x=Integer.parseInt(s,16);//十六进制数转换到十进制数
    				tf1.setText(""+x);
    				str.setLength(0); 
                    y=0d; 
    			}
    			else if(label.equals("10to2"))
    			{
    				String s=tf1.getText();
    				String x=Integer.toBinaryString(Integer.parseInt(s));//十进制数转换到二进制数
    				tf1.setText(""+x);
    				str.setLength(0); 
                    y=0d; 
    			}
    			else if(label.equals("10to8"))
    			{
    				String s=tf1.getText();
    				String x=Integer.toOctalString(Integer.parseInt(s));//十进制数转换到八进制数
    				tf1.setText(""+x);
    				str.setLength(0); 
                    y=0d; 
    			}
    			else if(label.equals("10to16"))
    			{
    				String s=tf1.getText();
    				String x=Integer.toHexString(Integer.parseInt(s));//十进制数转换到十六进制数
    				tf1.setText(""+x);
    				str.setLength(0); 
                    y=0d; 
    			}
    			
    			else if(label.equals("MC"))//MC为清除内存 
    			{
    				m=0d; 
                    tf2.setText(""); 
                    str.setLength(0); 
    			}
    			else if(label.equals("MR"))//MR为重新调用存储的数据 
    			{
    				if(tf2.getText().trim()!="")//有记忆数字
    				{
    					tf1.setText(""+m); 
    				}
    			}
    			else if(label.equals("MS"))//MS为存储显示的数据 
    			{
    				m=Double.parseDouble(tf1.getText().trim()); 
                    tf2.setText("M"); 
                    tf1.setText("0"); 
                    str.setLength(0); 
    			}
    			else if(label.equals("M+"))//M+为将显示的数字与已经存储的数据相加要查看新的数字单击MR 
    			{
    				m=m+Double.parseDouble(tf1.getText().trim()); 
    			}
    			else//选择的是其他的按钮 
    			{
    				if(label.equals("0"))//如果选择的是"0"这个数字键 
    				{
    					if(tf1.getText().trim().equals("0"))//如果显示屏显示的为零不做操作
    					{
    						
    					}
    					else
    					{
    						tf1.setText(str.append(e2.getActionCommand()).toString()); 
                            y=Double.parseDouble(tf1.getText().trim()); 
    					}
    				}
    				else if(label.equals("Backspace"))//选择的是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("字符串索引越界"); 
    		}
    	}
    }
    public static void main(String args[]) 
    {
    	new Counter(); 
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -