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

📄 testcalculator.java

📁 用Java做的小型计算器
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        {
        	if(mul==false)
        	{	
        		if(mul1==false)
        		{
        			result=Double.parseDouble(display);
        			jTextFiled.setText(display);
        		}
        		else
        		{
        			result=result*Double.parseDouble(display);
        			jTextFiled.setText(String.valueOf(result));
        		}
        	}        	
        	else	result=Double.parseDouble(display);
           	sign =1;
           	equa=1;
           	equa1=-1;
           	operator=3;
           	mul1=true;
        }
   		else if(e.getSource()==divild)
        {
        	if(div==false)
        	{
        		if(div1==false)
        		{
        			result=Double.parseDouble(display);
        			jTextFiled.setText(display);		
        		}
        		else 
        		{
        			result=result/Double.parseDouble(display);
        			jTextFiled.setText(String.valueOf(result));
        		}
        	}        	
        	else	result=Double.parseDouble(display);
        	sign =1;
        	equa=1;
           	equa1=-1;
        	operator=4;
        	div1=true;
        }
   		else if(e.getSource()==equal)
        {
        	if(operator==1)
        	{
        		if(equa==1)
        		{
        			operand=Double.parseDouble(jTextFiled.getText());
        			equa=-1;
        		}
        		if(equa1==-1)
        			result=result+Double.parseDouble(jTextFiled.getText());
        		if(equa1==1) 
        			result=Double.parseDouble(jTextFiled.getText())+operand;       		
        		if(paste==true)
        			jTextFiled.setText(String.valueOf(result+Double.parseDouble(copy)));
        		else jTextFiled.setText(display=String.valueOf(result));
        		sign =-1;
        		equa1=1;
        	}
           	if(operator==2)
           	{
           		if(equa==1)
        		{
        			operand=Double.parseDouble(jTextFiled.getText());
        			equa=-1;
        		}
        		if(equa1==-1)
        			result=result-Double.parseDouble(jTextFiled.getText());
        		if(equa1==1) 
        			result=Double.parseDouble(jTextFiled.getText())-operand;
        		if(paste==true)
        			jTextFiled.setText(String.valueOf(Double.parseDouble(copy)-Double.valueOf(jTextFiled.getText())));
           		else jTextFiled.setText(display=String.valueOf(result));
           		sign =-1;
           		equa1=1;
           	}
           	if(operator==3)
           	{
           		if(equa==1)
        		{
        			operand=Double.parseDouble(jTextFiled.getText());
        			equa=-1;
        		}
        		if(equa1==-1)
        			result=result*Double.parseDouble(jTextFiled.getText());
        		if(equa1==1) 
        			result=Double.parseDouble(jTextFiled.getText())*operand;          		
           		if(paste==true)
        			jTextFiled.setText(String.valueOf(Double.parseDouble(copy)*Double.valueOf(jTextFiled.getText())));
           		else jTextFiled.setText(display=String.valueOf(result));
           		sign =-1;
           		equa1=1;
           	}
           	if(operator==4)
           	{
           		if(equa==1)
        		{
        			operand=Double.parseDouble(jTextFiled.getText());
        			equa=-1;
        		}
        		if(equa1==-1)
        			result=result/Double.parseDouble(jTextFiled.getText());
        		if(equa1==1) 
        			result=Double.parseDouble(jTextFiled.getText())/operand;          		
           		if(paste==true)
        			jTextFiled.setText(String.valueOf(Double.parseDouble(copy)/Double.valueOf(jTextFiled.getText())));
           		else jTextFiled.setText(display=String.valueOf(result));
           		sign =-1;
           		equa1=1;
           	}
           	if(operator==5)
           	{
           		double r;
           		if(paste==true)  
           			r=Math.pow(new Double(Double.valueOf(copy)).doubleValue(),new Double(Double.parseDouble(jTextFiled.getText())).doubleValue());        	
           		else r=Math.pow(new Double(result).doubleValue(),new Double(Double.parseDouble(jTextFiled.getText())).doubleValue());
           		sign=1;
           		jTextFiled.setText(display=String.valueOf(r));
           	}
           	sign=1;
           	pul=true;
           	sub=true;
           	mul=true;
           	div=true;
           	paste=false;            
        }   
    	else if(e.getSource()==back)
       	{
       		display=jTextFiled.getText();
       		if(display.length()>=1)
       		{	if(display.length()==1)
       			{
       				display="0";
       				sign=1;
       			}
       			else display=display.substring(0,display.length()-1);
           		operand=Double.parseDouble(display);        
           		jTextFiled. setText(display);
           	}
        }
        else if (e.getSource()==ce)
        {
        	display=new String("0");
        	sign=1;
			jTextFiled.setText(display);
		}
    	else if(e.getSource()==cc)
        {
           	display=new String("0");
           	operand =0.0;
           	result=0.0;
           	sign =1;
           	equa=-1;
           	equa1=-1;
           	pul=false;
           	sub=false;
           	mul=false;
           	div=false;
           	pul1=false;
           	sub1=false;
           	mul1=false;
           	div1=false;
           	operator=0;
           	jTextFiled.setText(display);
        }
        else if(e.getSource()==sqrt)
        {
        	if(Double.parseDouble(jTextFiled.getText())>0)
				jTextFiled.setText(Double.toString(Math.sqrt(Double.parseDouble(jTextFiled.getText()))));
			else
			{
				jTextFiled.setText("负数不能开方");
				Toolkit.getDefaultToolkit().beep();
			}
			sign=1;
		}
		else if(e.getSource()==mc)
        {
        	if(signmemory=true)
        	{
           		memory = 0;
				jLabel1.setText("");				
           		operand =0.0;         
           		operator=0;
           		signmemory=false;        
          	}
          	sign=1;
		}
		else if(e.getSource()==mr)
        {
			if(signmemory=true)
				jTextFiled.setText(Integer.toString(memory));
			sign=1;
		}               
		else if(e.getSource()==ms)
        {
        	if(Integer.parseInt(jTextFiled.getText())!=0)
        	{
        		signmemory=true;
				jLabel1.setText("M");
				memory=Integer.parseInt(jTextFiled.getText());
			}	
			sign=1;		
		}
		else if(e.getSource()==mpuls)
        {
        	if(signmemory=true)
				memory=memory+Integer.parseInt(jTextFiled.getText());
			sign=1;
		}
		else if(e.getSource()==x1)
        {
        	if(Double.parseDouble(jTextFiled.getText())==0)
        	{
        		jTextFiled.setText("除数不能为零.");
        		Toolkit.getDefaultToolkit().beep();
        	}
        	else 
        	{	
        		result=1/(Double.parseDouble(jTextFiled.getText()));
        		jTextFiled.setText(String.valueOf(result));
        	}
			sign=1;
		}
		else if(e.getSource()==x2)
        {
        	result=Double.parseDouble(jTextFiled.getText());
        	result=result*result;
        	jTextFiled.setText(String.valueOf(result));
			sign=1;
		}
		else if(e.getSource()==x3)
        {
        	result=Double.parseDouble(jTextFiled.getText());
        	result=result*result*result;
        	jTextFiled.setText(String.valueOf(result));
			sign=1;
		}
		else if(e.getSource()==xy)
        {
        	result=Double.parseDouble(jTextFiled.getText());
        	sign =1;
        	operator=5;        
		}
		else if(e.getSource()==tan)
        {
        	double ta;
        	result=Double.parseDouble(jTextFiled.getText());
        	if(signAngle==1)          	
           		ta=Math.tan(new Double(result).doubleValue());
           	else ta=Math.tan((2*Math.PI*(new Double(result).doubleValue()))/360); 
           	jTextFiled.setText(display=String.valueOf(ta));
           	sign=1;
		}
		else if(e.getSource()==sin)
        {
        	double si;
        	result=Double.parseDouble(jTextFiled.getText());
        	if(signAngle==1)          	
           		si=Math.tan(new Double(result).doubleValue());
           	else si=Math.tan((2*Math.PI*(new Double(result).doubleValue()))/360);
           	jTextFiled.setText(display=String.valueOf(si));
           	sign=1;
		}
		else if(e.getSource()==cos)
        {
        	double co;
        	result=Double.parseDouble(jTextFiled.getText());
        	if(signAngle==1)          	
           		co=Math.tan(new Double(result).doubleValue());
           	else co=Math.tan((2*Math.PI*(new Double(result).doubleValue()))/360);
           	jTextFiled.setText(display=String.valueOf(co));
           	sign=1;
		}
		else if(e.getSource()==ln)
        {
        	double ln;
        	result=Double.parseDouble(jTextFiled.getText());                 	
           	ln=Math.log(new Double(result).doubleValue());	
           	jTextFiled.setText(display=String.valueOf(ln));
           	sign=1;
		}
		else if(e.getSource()==log)
        {
        	double lo;
        	result=Double.parseDouble(jTextFiled.getText());                 	
           	lo=Math.log10(new Double(result).doubleValue());	
           	jTextFiled.setText(display=String.valueOf(lo));
           	sign=1;
		}
		else if(e.getSource()==copyItem)
		{
			copy=new String(jTextFiled.getText());
			pasteItem.setEnabled(true);			
		}
		else if((JMenuItem)e.getSource()==pasteItem)
		{
			jTextFiled.setText(copy);
			paste=true;
		}
		if(e.getSource()==item_win)
		{
			this.setTitle(" 计算器 - [Windows]");
			this.setSize(560,340);			
			stylechose(str1);		
		}
		else if(e.getSource()==item_java)
		{
			this.setTitle(" 计算器 - [Java]");
			this.setSize(560,360);
			stylechose(str2);
		}
		else if(e.getSource()==item_ced)
		{
			this.setTitle(" 计算器 - [CED/Motif]");
			this.setSize(560,430);
			stylechose(str3);
		}
		else if(e.getSource()==aboutItem)
		{
			JOptionPane.showMessageDialog(Calculator.this,About,"关于 计算器",JOptionPane.INFORMATION_MESSAGE,new ImageIcon("cal.png"));
		}
		else if(e.getSource()==helpItem)
		{
			JOptionPane.showMessageDialog(Calculator.this,Help,"?帮助",JOptionPane.INFORMATION_MESSAGE,new ImageIcon("help.png"));
		}								
	}
	private void stylechose(String str)
	{//设置窗口风格
        try 
        {
            UIManager.setLookAndFeel(str);
            SwingUtilities.updateComponentTreeUI(this);
        }
        catch(Exception ex)
        {
            System.out.println("the LookAndFeel class load failed!")  ;            
        }
    }    
	private class WindowCloser extends WindowAdapter
  	{
    	public void windowClosing(WindowEvent e)
    	{
      		int sel=JOptionPane.showConfirmDialog(new JFrame(),"确认关闭窗口吗?");
      		if(sel==JOptionPane.YES_OPTION)
      		{
        		e.getWindow().dispose();
        		System.exit(0);
      		}
    	}
  	}
  	private JPanel panel=new JPanel();
	private JPanel panel1=new JPanel();
	private JPanel panel2=new JPanel();
	private JPanel panel3=new JPanel();
	private JPanel panel4=new JPanel();
	private JPanel panel5=new JPanel();
	private JMenuBar menuBar = new JMenuBar();
	private JMenu EditMenu,SeeMenu,HelpMenu;
	private JMenuItem copyItem,pasteItem,helpItem,aboutItem;
	private static final String[ ] EditNames = { "复制(C)", "粘贴(V)"}; 
	private static final String[ ] SeeNames = { "Windows(W)","Java(Metal)(J)","CED/Motif(E)" };  	
   	private static final String[ ] HelpNames = { "帮助主题(H)", "关于计算器(A)"};
   	private String str1 = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
    private String str2 = "javax.swing.plaf.metal.MetalLookAndFeel";
    private String str3 = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
    private String About="Zelosor 计算器\n版本1.0.0\n\n版权所有 (C) 2004.12.12\n    何泽荣\n    华南农业大学02级计算机(1)班\n    Email: Zelosor@163.com";	
	private String Help="请参照Windows计算器的帮助文件~~\n(有待进一步改进!)";
	private JButton num1,num2,num3,num4,num5,num6,num7,num8,num9,num0,point,minus,plus,subtract,multiply,divild,equal,back,ce,cc,sqrt;
	private JButton a,b,c,d,ee,f,mc,mr,ms,mpuls,ln,x1,x2,x3,xy,tan,cos,sin,log;
	private JRadioButton garrison16,garrison10,garrison8,garrison2,angle,radian;
	private JRadioButtonMenuItem item_win,item_java,item_ced;
	private JLabel jLabel,jLabel1;
	private JTextField jTextFiled=new JTextField("0");
	private static String display,copy;
	private static Double operand,result;
	private int sign0,sign,sign2,sign8,sign10,sign16,signAngle,equa,equa1,operator,memory;
	private boolean signmemory,win,java,ced,mac,cro,pul,sub,mul,div,pul1,sub1,mul1,div1,paste;
}

public class TestCalculator
{		
	public static void main(String[] args)throws Exception
  	{
    	new Calculator();
    }
}

⌨️ 快捷键说明

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