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

📄 testcau.java

📁 用JAVA代码实现的一个简单计算器
💻 JAVA
字号:
package woneng;


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TestCau {
     public static void main(String[] args){
    	 CauFrame cf=new CauFrame("计算器");
    	//new PassWord(cf);
     }
}
class CauFrame extends JFrame implements ActionListener{
	Button button[];
	JTextField tf;
    boolean com=false;//判断点击数字之前是否点了+,-*,/,=;
	int  p=0;          //判断点击数字之前是否点了数字;
	int j=0;           //判断是第一次用+,-,*,/;
	float b1,b2;         //获取前一个数;
	int s=0;         //+,-,*,/用1,2,3,4标号;
	float result;
	int t; 
    int x=0; 
    String str;
	public CauFrame(String s){
		super(s);
		setResizable(false);
		setLocation(400,300);
		setSize(200,200);
		setBackground(Color.BLUE);
		setLayout(new BorderLayout());
	    Panel p1=new Panel();
	   
	    tf=new JTextField(16);
	    tf.setEditable(false);    //设置指定的 boolean 变量,以指示此 TextComponent 是否应该为可编辑的。当状态更改时,将激发 PropertyChange 事件("editable")。 
	    p1.add(tf);
	    tf.setHorizontalAlignment(JTextField.RIGHT );
	     tf.setText("");
	    add(p1,BorderLayout.NORTH);
	    button=new Button[20];
	    Panel p2=new Panel(new GridLayout(5,4));
	    button[0]=new Button("Sqrt");
	    button[1]=new Button("+/-");
	    button[2]=new Button("CE");
	    button[3]=new Button("C");
	    button[4]=new Button("7");
	    button[5]=new Button("8");
	    button[6]=new Button("9");
	    button[7]=new Button("/");
	    button[8]=new Button("4");
	    button[9]=new Button("5");
	    button[10]=new Button("6");
	    button[11]=new Button("*");
	    button[12]=new Button("1");
	    button[13]=new Button("2");
	    button[14]=new Button("3");
	    button[15]=new Button("-");
	    button[16]=new Button("0");
	    button[17]=new Button(".");
	    button[18]=new Button("=");
	    button[19]=new Button("+");
	    
	    for(int i=0;i<button.length;i++)
	    {
	    	p2.add(button[i]);
	    	button[i].addActionListener(this);
	    }
	    
	    add(p2);
	    
	   addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}
		});
	    
		pack();
		setVisible(true);
		}
	public void actionPerformed(ActionEvent e) {

		if(e.getSource()==button[0]){
			
			tf.setText(""+Math.sqrt(Double.parseDouble(tf.getText())));
		}
		if(e.getSource()==button[1])
		{   if(Float.parseFloat(tf.getText())>0||Float.parseFloat(tf.getText())<0)
			        tf.setText(""+(-Double.parseDouble(tf.getText())));
		   else
			        tf.setText(tf.getText());
		}
		if(e.getSource()==button[2]||e.getSource()==button[3]){
			
			//tf.setText(null);
			tf.setText("0");
			 //  x=0;
		     // t=0; 
		    //  com=false;
		    //  p=0;
		}
		if(e.getSource()==button[4]||e.getSource()==button[5]||e.getSource()==button[6]||e.getSource()==button[8]||e.getSource()==button[9]||e.getSource()==button[10]||e.getSource()==button[12]||e.getSource()==button[13]||e.getSource()==button[14]){
			if(p==0||com)   //这句话什么意思, com点击数字前没点加减乘除,p点击数字前没点数字``````.``.``.```..````.``!!~~
			{    
				tf.setText( e.getActionCommand());//除去后按+ - * /输入第二次数字时第一个显示不出来
			    com=false;
			    p=1;
			}
			else{if(Float.parseFloat(tf.getText())!=0)
			              tf.setText(tf.getText()+e.getActionCommand());//
			        else{
			             str=tf.getText()+e.getActionCommand();
			        	if(str.length()>1&&str.charAt(1)!='.'){
			        	         str=str.substring(1);   //"unhappy".substring(2) returns "happy"

			        		  tf.setText(str);
			        		  }        		  
			        	else
			        		tf.setText(str);
			        }
			  }  	
			}                                            /////////////
		
		
		if(e.getSource()==button[16]){         ///0按钮
			if(p==0||com){
				tf.setText(e.getActionCommand());
				com=false;
				p=1;
			}
			else{
			    if(Float.parseFloat(tf.getText())>0||Float.parseFloat(tf.getText())<0)
			    	   tf.setText(tf.getText()+e.getActionCommand());
			    else{ 
			    	 if(tf.getText().trim().indexOf(".") == -1)
			    		 tf.setText(tf.getText());
			    	 else
			           tf.setText(tf.getText()+e.getActionCommand());
			    }
			}
				
		}
		if(e.getSource()==button[17]){        //. 按钮
			if(p==0||com){            //这3句什么意思   
				com=false; 
				p=1;
			}
			else{
				if(tf.getText().trim().indexOf(".") == -1)
					tf.setText(tf.getText()+e.getActionCommand());
				else
					tf.setText(tf.getText());
			}
		}
		if(e.getSource()==button[4]||e.getSource()==button[5]||e.getSource()==button[6]||e.getSource()==button[8]||e.getSource()==button[9]||e.getSource()==button[10]||e.getSource()==button[12]||e.getSource()==button[13]||e.getSource()==button[14])
			  t=0;
		if(e.getSource()==button[7]||e.getSource()==button[11]||e.getSource()==button[15]||e.getSource()==button[19])
			  x++;
		if(e.getSource()==button[7]||e.getSource()==button[11]||e.getSource()==button[15]||e.getSource()==button[19]){
			if(t==0||x==1){					//按了数字后再按 + - * / 
				                            //////aaaaaaaaaaaaaa
			}
			else{
				switch(s){
				case 4:{
					b2=Float.parseFloat(tf.getText());
					result=b1/b2;
					tf.setText(""+result);
					break;
				}
				case 3:{
					b2=Float.parseFloat(tf.getText());
					result=b1*b2;
					tf.setText(""+result);
					break;
				}
				case 2:{
					b2=Float.parseFloat(tf.getText());
					result=b1-b2;
					tf.setText(""+result);
					break;
				}
				case 1:{
					b2=Float.parseFloat(tf.getText());
					result=b1+b2;
					tf.setText(""+result);
					break;
				}
				}	
			}
			if(e.getSource()==button[7]||e.getSource()==button[11]||e.getSource()==button[15]||e.getSource()==button[19])
				t=1;
			
		}
		if(e.getSource()==button[7])
		{  
			
				com=true;
				p=0;
				b1=Float.parseFloat(tf.getText());
			    s=4;
	    }
			
		if(e.getSource()==button[11]){
			 p=0;
			 b1=Float.parseFloat(tf.getText());
			 s=3;
			}
			 
		
		if(e.getSource()==button[15]){
		    com=true;
			 p=0;
			 b1=Float.parseFloat(tf.getText());
		     s=2;
			 }
	
		if(e.getSource()==button[19]){
			com=true;
			 p=0;
			 b1=Float.parseFloat(tf.getText());
		     s=1;
			}
		
		
		if(e.getSource()==button[18]){
			switch(s){
			case 4:{
				b2=Float.parseFloat(tf.getText());
				result=b1/b2;
				tf.setText(""+result);
				break;
			}
			case 3:{
				b2=Float.parseFloat(tf.getText());
				result=b1*b2;
				tf.setText(""+result);
				break;
			}
			case 2:{
				b2=Float.parseFloat(tf.getText());
				result=b1-b2;
				tf.setText(""+result);
				break;
			}
			case 1:{
				b2=Float.parseFloat(tf.getText());
				result=b1+b2;
				tf.setText(""+result);
				break;
			}
			}	
		}
		}
	
	 
}
/*class PassWord implements ActionListener{
	JTextField user;
	JPasswordField passWd;
	JButton b1,b2;
	JDialog d;
	Container dialogPane;
	CauFrame cf;
	public PassWord(CauFrame cf){
		d=new JDialog();
		d.setTitle("请输入用户名和密码");
		dialogPane=d.getContentPane();
		dialogPane.setLayout(new GridLayout(3,2));
	    dialogPane.add(new JLabel("用户名",SwingConstants.CENTER));
	    user=new JTextField();
	    dialogPane.add(user);
	    dialogPane.add(new JLabel("密码",SwingConstants.CENTER));
	    passWd=new JPasswordField();
	    dialogPane.add(passWd);
	    b1=new JButton("确定");
	    b1.addActionListener(this);
	    dialogPane.add(b1);
	    b2=new JButton("退出");
	    b2.addActionListener(this);
	    dialogPane.add(b2);
	    d.setBounds(400,300,400,150);
	    d.getRootPane().setDefaultButton(b1);
	    d.setVisible(true);
	    this.cf=cf;
	}
	public void actionPerformed(ActionEvent e){
		if(e.getSource()==b1){
			String name=user.getText();
			String passWord=passWd.getText();
			if((name.equals("test"))&&(passWord.equals("1234"))){
				d.setVisible(false);
				cf.setVisible(true);
			}
			else{
				JOptionPane.showMessageDialog(d,"错误的用户名或密码","请重新输入",JOptionPane.WARNING_MESSAGE);
				user.setText("");
				passWd.setText("");
			}
		}
		if(e.getSource()==b2){
			System.exit(0);
		}
	}
}*/

⌨️ 快捷键说明

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