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

📄 jisuanqi.java

📁 java 简易计算器.除了可以进行科学运算外还可以进行日期的减法运算.
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package jisuanqi;






import java.awt.*;
import java.awt.event.*;
import java.lang.Math;
import javax.swing.*;
public class Caculator
{
    public static void main(String args[])
    {
    	CaculatorFrame frame =new CaculatorFrame();
        
        
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
       
        frame.setVisible(true);
       }
}








class CaculatorFrame extends JFrame
{
	
	private static final long serialVersionUID = 1L;

	public CaculatorFrame()
	{
		setTitle("计算器");
		Container contentPane=getContentPane();
		CaculatorPanel panel=new CaculatorPanel();
		contentPane.add(panel);
	}
}








   class  CaculatorPanel extends JPanel
   {
	private static final long serialVersionUID = 1L;
	     JTextField text;
		 JPanel jp1;
		 JPanel jp2;
		 JPanel jp3;
		 JPanel jp4;
		 JPanel jp5;
		 double result1;
		 double result2;
		 double result3;
		 boolean start1=true;
		 boolean start2=true;
		 boolean flag1=true;
		 boolean flag2=false;
		 boolean flag3=true;
		 String command1;
		 String command2;
		 String command3; 
		 String date1;
		 String date2;
	    
	public  CaculatorPanel()
       {
           
           setLayout(new BorderLayout());
           text=new JTextField();
           text.setHorizontalAlignment(JTextField.RIGHT); 
          // text.addKeyListener(new KeyEventHandle());
           text.setText("0");
           text.setEditable(false);
           jp1=new JPanel();
           jp2=new JPanel();
           jp3=new JPanel();
           jp4=new JPanel();
           jp5=new JPanel();  
           ActionListener insert1=new Insert1();
           ActionListener insert2=new Insert2();
           ActionListener command4=new Command1();
           ActionListener command5=new Command2();
           ActionListener clear=new Clear();
            ActionListener clearEnd=new ClearEnd();
           ActionListener back=new Back();
           add(text,BorderLayout.NORTH);
          jp1.setLayout(new GridLayout(4,3));
         jp2.setLayout(new GridLayout(4,1));        
          jp3.setLayout(new GridLayout(1,4));
           jp5.setLayout(new GridLayout(4,2));
           addButton("9",insert1,jp1,255,255,0);
           addButton("8",insert1,jp1,255,255,0);
           addButton("7",insert1,jp1,255,255,0);
           addButton("6",insert1,jp1,255,255,0);
           addButton("5",insert1,jp1,255,255,0);
           addButton("4",insert1,jp1,255,255,0);
           addButton("3",insert1,jp1,255,255,0);
           addButton("2",insert1,jp1,255,255,0);
           addButton("1",insert1,jp1,255,255,0);
           addButton("0",insert1,jp1,255,255,0);
           addButton(".",insert1,jp1,255,255,0);           
           addButton("/",insert2,jp1,255,0,0);        
           addButton("+",command4,jp2,0,255,0);
           addButton("-",command4,jp2,0,255,0);
           addButton("×",command4,jp2,0,255,0);
           addButton("÷",command4,jp2,0,255,0);
           addButton("=",command4,jp3,0,0,255);
           addButton("←",back,jp3,0,0,255);
           addButton("C",clear,jp3,0,255,255);
           addButton("CE",clearEnd,jp3,0,255,255);
           addButton("+/-",command5,jp5,255,0,255);
           addButton("sqrt",command5,jp5,255,0,255);
           addButton("sin",command5,jp5,255,0,255);
           addButton("cos",command5,jp5,255,0,255);
           addButton("tan",command5,jp5,255,0,255);
           addButton("ln",command5,jp5,255,0,255);           
           addButton("1/x",command5,jp5,255,0,255);
           addButton("x*x",command5,jp5,255,0,255);
           jp4.setLayout(new BorderLayout());
           jp4.add(jp2);
           jp4.add(jp3,BorderLayout.SOUTH);
            jp4.add(jp5,BorderLayout.EAST);
            add(jp1);
            add(jp4,BorderLayout.EAST);
            addKeyListener(new KeyEventHandle());
       
      
       }
       
       public void addButton(String s,ActionListener l,JPanel j,int c1,int c2,int c3)
       {
           JButton button=new JButton(s);
           button.addActionListener(l);
           button.setBackground(new Color(c1,c2,c3));
           j.add(button);
       }
   
   
  private class Insert1 implements ActionListener 
   {
       public void actionPerformed(ActionEvent e)
       {
           String input=e.getActionCommand();
           if(start1)
           {
               text.setText("");
               start1=false;
           }
           text.setText(text.getText()+input);
       }
   }
   
  private class Insert2 implements ActionListener
   {
       public void actionPerformed(ActionEvent e)
       {
           String input=e.getActionCommand();
           if(start1)
           {
               text.setText("");
               start1=false;
           }
           text.setText(text.getText()+input);
           flag2=true;
       }
   }
   
  private class Clear implements ActionListener
   {
       public void actionPerformed(ActionEvent e)
        {
            text.setText("0");
            command1=null;
            command2=null;
            command3=null;
            result1=0;
            result2=0;
            result3=0;
            start1=true;
            start2=true;
            flag1=true;
		   flag2=false;
              
           }
       }
       
       private class ClearEnd implements ActionListener
   {
       public void actionPerformed(ActionEvent e)
        {
            text.setText("0");
            
            start1=true;
          
           }
       }
       
  private class Back implements ActionListener
     {
         public void actionPerformed(ActionEvent e)
         {
             String s =text.getText();
             int j=s.length();
             if(j-2>=0)
             text.setText(s.substring(0,j-1));
             else
              {text.setText("0");
                  start1=true;
                }
           }
       }
       
     class KeyEventHandle extends KeyAdapter
     {
         //int keycode;
         String str=new String();
         public void keyReleased(KeyEvent e)
         {
        	 CaculatorPanel cp=(CaculatorPanel)e.getSource();
             str=""+e.getKeyChar();
             
            if(str=="0"||str=="1"||str=="2"||str=="3"||str=="4"||str=="5"||str=="6"||str=="7"||str=="8"||str=="9"||str=="9"||str==".")
            { if(cp.start1)
             {
                 cp.text.setText("");
                 cp.start1=false;
             }
             cp.text.setText(cp.text.getText()+str);
            }
            if(str=="/")
            	{
            	cp.text.setText(cp.text.getText()+str);
            	cp.flag2=true;
            	}
             if(str=="+"||str=="-"||str=="*"||str=="=")
             {
            	 if(cp.flag2==false)
                 {
                     if(cp.start2)
                     {
                    // String st1=e.getActionCommand();
                    cp.result1=Double.parseDouble(cp.text.getText());
                     cp.command1=str;
                     cp.start2=false;
                     cp.start1=true;
                     cp.flag1=true;
                      }
                     else{
                       if(cp.flag1)
                        {
                         cp.result2=Double.parseDouble(cp.text.getText());
                        // String st1=e.getActionCommand();
                         cp.command2=str;
                          if(cp.command2=="=")
                         { 
                          	
                             cp.text.setText(""+count(cp.result1,cp.result2,cp.command1));
                            cp.result2=0;
                              cp.start1=true;
                              cp.flag1=true;
                              cp.start2=true;
                            // return;
                          }
                        else if(cp.command2=="+"||cp.command2=="-"||cp.command1=="*")
                         {
                             cp.result1=count(cp.result1,cp.result2,cp.command1);
                             cp.text.setText(""+cp.result1);
                             cp.command1=cp.command2;
                             cp.start1=true;
                             cp.flag1=true;
                         }
                        
                       
                       else  if(cp.command2=="*"&&(cp.command1=="+"||cp.command1=="-"))
                         {
                             cp.flag1=false;
                             cp.start1=true;
                             return;
                         }
                     }
                     if(cp.flag1==false)
                     {
                       //  String st6=e.getActionCommand();

⌨️ 快捷键说明

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