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

📄 calculatorframe.java

📁 一个小而精巧的计算器
💻 JAVA
字号:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.*;


public class CalculatorFrame extends JFrame implements ActionListener{
	private static final long serialVersionUID = 1L;
	int btn_height = 30;
	int btn_width1 = 90;
	int btn_width = 50;
	int btn_start_row = 30;
	int btn_start_col = 4;
	double operNum1,operNum2,result;
	String strValue,strBtnName,strOperNum1="#",strOperNum2="#",strResult,operateNotion;
	Boolean firstIsOver=false;
	Boolean firstOperOver=false;
	JLabel display = new JLabel("0",JLabel.RIGHT);
	JPanel jp = new JPanel();
    
	JButton btn_back = new JButton("BackSpace");
	JButton btn_ce = new JButton("CE");
	JButton btn_c = new JButton("C");
	JButton btn7 = new JButton("7");
	JButton btn8 = new JButton("8");
	JButton btn9 = new JButton("9");
	JButton btnDiv = new JButton("/");
	JButton btn4 = new JButton("4");
	JButton btn5 = new JButton("5");
	JButton btn6 = new JButton("6");
	JButton btnMul = new JButton("*");
	JButton btn1 = new JButton("1");
	JButton btn2 = new JButton("2");
	JButton btn3 = new JButton("3");
	JButton btnSub = new JButton("-");
	JButton btn0 = new JButton("0");
	JButton btnFlag = new JButton("+\\-");
	JButton btnDot = new JButton(".");
	JButton btnAdd = new JButton("+");
	JButton btnEqual = new JButton("=");
	JButton[] btnControl;
	JButton[][] btnNum;
	
	@SuppressWarnings("deprecation")
	public CalculatorFrame(){
		super("计算器");
		setLayout(null);
		jp.setBorder(new TitledBorder(""));
		
	    //display.setBounds(5,4, 280, 20);
	    display.reshape(5, 4, 280, 20);
	    //jp.setBounds(3, 1, 282, 25);
	    jp.reshape(3, 1, 282, 25);
	    add(display);
	    add(jp);//display area
	    
	    btnEqual.setBounds(233,70,btn_width,141);
	    btnEqual.reshape(233,70,btn_width,141);
	    btnEqual.addActionListener(this);
	    add(btnEqual);
	    btnControl= new JButton[]{btn_back,btn_ce,btn_c};
	    int col1 =4;
	    for (int i=0;i<3;i++){
	    	
	    	//btnControl[i].setBounds(col1,btn_start_row,btn_width1,btn_height);
	    	btnControl[i].reshape(col1,btn_start_row,btn_width1,btn_height);
	    	btnControl[i].addActionListener(this);
	    	add(btnControl[i]);
	    	col1 = col1+95;
	    }
	    
	    btnNum = new JButton[][]{{btn7,btn8,btn9,btnDiv},
	    						  {btn4,btn5,btn6,btnMul},
	    						  {btn1,btn2,btn3,btnSub},
	    						  {btn0,btnFlag,btnDot,btnAdd}
	                             };
	   
	    int row = btn_start_row+40;
	    for(int i=0;i<4;i++){
	    	int col = 4;
	    	for (int j=0;j<4;j++){
	    		//btnNum[i][j].setBounds(col, row, btn_width,btn_height);
	    		btnNum[i][j].reshape(col, row, btn_width,btn_height);
	    		btnNum[i][j].addActionListener(this);
	    		add(btnNum[i][j]);
	    		col =col+btn_width+7;
	    	   }
	    	row = row+btn_height+7;
	    }
	    
	    
	    addWindowListener(new   WindowAdapter()   
	    {   
	    	public   void   windowClosing(WindowEvent   e)   
	    	{   
	    			dispose();   
	    			System.exit(0);   
	    	}   
	    });   
	    this.setSize(296,251);
	    this.setVisible(true);
	    this.setResizable(false);
	  
	}
	//-----------------------------------------------------------------------
	public void actionPerformed(ActionEvent e){
		//display.setText(e.getActionCommand());
		strBtnName = e.getActionCommand();
		strValue = display.getText();
		if(strValue.startsWith("+")||strValue.startsWith("-")
				||strValue.startsWith("*")||strValue.startsWith("/")){
			firstIsOver = true;
		}
		
		if(strOperNum2=="$") firstOperOver = true;
		strOperNum2="#";
		
		if(strBtnName==".")
			if (!strValue.contains("."))
				display.setText(strValue+".");
		if(strBtnName=="BackSpace")
			if (strValue.length()==1)
				display.setText("0");
			else
				display.setText(strValue.substring(0, strValue.length()-1));
		if (strBtnName=="C")
			display.setText("0");
		if (strBtnName=="CE"){
			strOperNum1="#";
			strOperNum2="#";
			display.setText("0");
		}
			
		if (strBtnName=="+"||strBtnName=="-"||strBtnName=="*"||strBtnName=="/"){
			if (strOperNum1=="#"){
				strOperNum1=strValue;
				display.setText(strBtnName+"       "+strValue);
				operateNotion = strBtnName;
				}
			else{
				if(firstIsOver){
					display.setText(strBtnName+"        "+strOperNum1);
					operateNotion = strOperNum1;
					
				}
				else{
					operateDemo(strOperNum1,operateNotion,strValue,strBtnName);
				}
					
				
			}
		}
		if (strBtnName=="="){
			 //能激发按钮
			 operateDemo(strOperNum1,operateNotion,strValue,"");
		}
		
		if (strBtnName=="0"){
			if(firstIsOver||firstOperOver){
				
					display.setText("0");
					firstIsOver = false;
					firstOperOver = false;
				
			}
		    else{
		    	if(strValue=="0"){
					display.setText(strValue);}
				else{
					strValue=strValue+strBtnName;
					display.setText(strValue);
				}
		    }
		}
		
		if (strBtnName.compareTo("1")>=0&&strBtnName.compareTo("9")<=0){
			if(firstIsOver||firstOperOver){
				strValue=strBtnName;
			    display.setText(strValue);
			    firstIsOver = false;
			    firstOperOver = false;
			}
		    else{
		    	if (strValue=="0"){
		    		strValue=strBtnName;
		    		display.setText(strValue);
				
		    	}
		    	else{
		    		strValue = strValue+strBtnName;
		    		display.setText(strValue);
		    	}	
			}//	
		}
		    	
		
	}
	//operateDemo(strOperNum1,operateNotion,strValue,"")
	public Boolean operateDemo(String str1,String oflag,String str2,String tempflag){
		//System.out.println(str1+oflag+str2+tempflag);
		if (str1!="#"){
			strOperNum2 = str2;
			operNum1 = Double.valueOf(strOperNum1);
			operNum2 = Double.valueOf(strOperNum2);
		
			if (oflag=="+")
				result = operNum1+operNum2;
			else if(oflag=="-")
				result = operNum1-operNum2;
			else if(oflag=="*")
				result = operNum1*operNum2;
			else{
				if (operNum2==0.0 ){
					display.setText("0");
					JOptionPane.showMessageDialog(null,
				          "不能被零除!", "提示",
				          JOptionPane.ERROR_MESSAGE);
					display.setText("0");
				}
				else
					result = operNum1/operNum2;
			
			}
		strResult = String.valueOf(result);
		display.setText(strResult);
		operateNotion = tempflag;
		strOperNum2="$";
		strOperNum1="#";
		firstOperOver = false;
		}
		return true;
		
	}
	public static void main(String[] args){
		CalculatorFrame mainframe = new CalculatorFrame();
		
	}
}

⌨️ 快捷键说明

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