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

📄 calculator.java~1~

📁 200多个自己编的java程序,大家可以学一下.
💻 JAVA~1~
字号:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.border.*;


public class Calculator extends JFrame{
	private JTextField tfResult=new JTextField();
	private JPanel panel1 = new JPanel();
	private JPanel panel2 = new JPanel();
	private JButton btn0 = new JButton();
	private JButton btn1 = new JButton();
	private JButton btn2 = new JButton();
	private JButton btn3 = new JButton();
	private JButton btn4 = new JButton();
	private JButton btn5 = new JButton();
	private JButton btn6 = new JButton();
	private JButton btn7 = new JButton();
	private JButton btn8 = new JButton();
	private JButton btn9 = new JButton();
	
	
	
	private JButton addBtn = new JButton();
	private JButton subtractBtn = new JButton();
	private JButton multiBtn = new JButton();
	private JButton divBtn = new JButton();
	private JButton equalBtn = new JButton();
	private JButton dotBtn = new JButton();
	
	
	
	private GridLayout gridLayout1 = new GridLayout();
	private GridBagLayout gridBagLayout1 = new GridBagLayout();
	private GridBagLayout gridBagLayout2 = new GridBagLayout();
	
	//save the latest operator(null add subtract multiply divide)
	
	private String recentOperation=null;
	
	private String recentNum=null;
	private boolean isNew=true;
	
	public Calculator(){
		
		
		try{
			btn0.setFont(new java.awt.Font("SansSerif",0,12));
			btn0.setForeground(Color.BLACK);
			btn0.setBorder(BorderFactory.createRaisedBevelBorder());
			btn0.setText("0");
			btn0.addActionListener(new java.awt.event.ActionListener (){
			
			public void actionPerformed(ActionEvent e){
				if(tfResult.getText().equals("0"))return;
				if(!isNew)
				tfResult.setText(tfResult.getText()+"0");
				else
				tfResult.setText("0");
				isNew=false;
					
				
			}
			
			
		});
		btn1.setFont(new java.awt.Font("SansSerif",0,12));
			btn1.setForeground(Color.BLACK);
			btn1.setBorder(BorderFactory.createRaisedBevelBorder());
			btn1.setText("1");
			btn1.addActionListener(new java.awt.event.ActionListener (){
			
			public void actionPerformed(ActionEvent e){
				
				if(!isNew)
				tfResult.setText(tfResult.getText()+"1");
				else
				tfResult.setText("1");
				isNew=false;
					
				
			}
			
			
		});
				
			btn2.setFont(new java.awt.Font("SansSerif",0,12));
			btn2.setForeground(Color.BLACK);
			btn2.setBorder(BorderFactory.createRaisedBevelBorder());
			btn2.setText("2");
			btn2.addActionListener(new java.awt.event.ActionListener (){
			
			public void actionPerformed(ActionEvent e){
				
				if(!isNew)
				tfResult.setText(tfResult.getText()+"2");
				else
				tfResult.setText("2");
				isNew=false;
					
				
			}
			
			
		});
		
		
			btn3.setFont(new java.awt.Font("SansSerif",0,12));
			btn3.setForeground(Color.BLACK);
			btn3.setBorder(BorderFactory.createRaisedBevelBorder());
			btn3.setText("3");
			btn3.addActionListener(new java.awt.event.ActionListener (){
			
			public void actionPerformed(ActionEvent e){
				
				if(!isNew)
				tfResult.setText(tfResult.getText()+"3");
				else
				tfResult.setText("3");
				isNew=false;
					
				
			}
			
			
		});
			btn4.setFont(new java.awt.Font("SansSerif",0,12));
			btn4.setForeground(Color.BLACK);
			btn4.setBorder(BorderFactory.createRaisedBevelBorder());
			btn4.setText("4");
			btn4.addActionListener(new java.awt.event.ActionListener (){
			
			public void actionPerformed(ActionEvent e){
				
				if(!isNew)
				tfResult.setText(tfResult.getText()+"4");
				else
				tfResult.setText("4");
				isNew=false;
					
				
			}
			
			
		});
		
		
			btn5.setFont(new java.awt.Font("SansSerif",0,12));
			btn5.setForeground(Color.BLACK);
			btn5.setBorder(BorderFactory.createRaisedBevelBorder());
			btn5.setText("5");
			btn5.addActionListener(new java.awt.event.ActionListener (){
			
			public void actionPerformed(ActionEvent e){
				
				if(!isNew)
				tfResult.setText(tfResult.getText()+"5");
				else
				tfResult.setText("5");
				isNew=false;
					
				
			}
			
			
		});
		
		
		
			btn6.setFont(new java.awt.Font("SansSerif",0,12));
			btn6.setForeground(Color.BLACK);
			btn6.setBorder(BorderFactory.createRaisedBevelBorder());
			btn6.setText("6");
			btn6.addActionListener(new java.awt.event.ActionListener (){
			
			public void actionPerformed(ActionEvent e){
				
				if(!isNew)
				tfResult.setText(tfResult.getText()+"6");
				else
				tfResult.setText("6");
				isNew=false;
					
				
			}
			
			
		});
		
		
		    btn7.setFont(new java.awt.Font("SansSerif",0,12));
			btn7.setForeground(Color.BLACK);
			btn7.setBorder(BorderFactory.createRaisedBevelBorder());
			btn7.setText("7");
			btn7.addActionListener(new java.awt.event.ActionListener (){
			
			public void actionPerformed(ActionEvent e){
				
				if(!isNew)
				tfResult.setText(tfResult.getText()+"7");
				else
				tfResult.setText("7");
				isNew=false;
					
				
			}
			
			
		});
			btn8.setFont(new java.awt.Font("SansSerif",0,12));
			btn8.setForeground(Color.BLACK);
			btn8.setBorder(BorderFactory.createRaisedBevelBorder());
			btn8.setText("8");
			btn8.addActionListener(new java.awt.event.ActionListener (){
			
			public void actionPerformed(ActionEvent e){
				
				if(!isNew)
				tfResult.setText(tfResult.getText()+"8");
				else
				tfResult.setText("8");
				isNew=false;
					
				
			}
			
			
		});
			btn9.setFont(new java.awt.Font("SansSerif",0,12));
			btn9.setForeground(Color.BLACK);
			btn9.setBorder(BorderFactory.createRaisedBevelBorder());
			btn9.setText("9");
			btn9.addActionListener(new java.awt.event.ActionListener (){
			
			public void actionPerformed(ActionEvent e){
				
				if(!isNew)
				tfResult.setText(tfResult.getText()+"9");
				else
				tfResult.setText("9");
				isNew=false;
					
				
			}
			
			
		});
		addBtn.setFont(new java.awt.Font("SansSerif",0,12));
		addBtn.setForeground(Color.black);
		addBtn.setBorder(BorderFactory.createRaisedBevelBorder());
		addBtn.setText("+");
		addBtn.addActionListener(new java.awt.event.ActionListener(){
		
		public void actionPerformed(ActionEvent e){
			if((tfResult.getText()).equals(""))return;
			if(recentOperation!=null)equalaction(e);
			recentOperation="add";
			recentNum=tfResult.getText();
			isNew=true;
		}	
		});
		
		subtractBtn.setFont(new java.awt.Font("SansSerif",0,12));
		subtractBtn.setForeground(Color.black);
		subtractBtn.setBorder(BorderFactory.createRaisedBevelBorder());
		subtractBtn.setText("-");
		subtractBtn.addActionListener(new java.awt.event.ActionListener(){
		
		public void actionPerformed(ActionEvent e){
			if((tfResult.getText()).equals(""))return;
			if(recentOperation!=null)equalaction(e);
			recentOperation="subtract";
			recentNum=tfResult.getText();
			isNew=true;
		}	
		});
		
		multiBtn.setFont(new java.awt.Font("SansSerif",0,12));
		multiBtn.setForeground(Color.black);
		multiBtn.setBorder(BorderFactory.createRaisedBevelBorder());
		multiBtn.setText("*");
		multiBtn.addActionListener(new java.awt.event.ActionListener(){
		
		public void actionPerformed(ActionEvent e){
			if((tfResult.getText()).equals(""))return;
			if(recentOperation!=null)equalaction(e);
			recentOperation="multiply";
			recentNum=tfResult.getText();
			isNew=true;
		}	
		});
		
		divBtn.setFont(new java.awt.Font("SansSerif",0,12));
		divBtn.setForeground(Color.black);
		divBtn.setBorder(BorderFactory.createRaisedBevelBorder());
		divBtn.setText("/");
		divBtn.addActionListener(new java.awt.event.ActionListener(){
		
		public void actionPerformed(ActionEvent e){
			if((tfResult.getText()).equals(""))return;
			if(recentOperation!=null)equalaction(e);
			recentOperation="divide";
			recentNum=tfResult.getText();
			isNew=true;
		}	
		});
		
		
		equalBtn.setFont(new java.awt.Font("SansSerif",0,12));
		equalBtn.setForeground(Color.black);
		equalBtn.setBorder(BorderFactory.createRaisedBevelBorder());
		equalBtn.setText("=");
		equalBtn.addActionListener(new java.awt.event.ActionListener(){
		
		public void actionPerformed(ActionEvent e){
        
        equalaction(e);
		}	
		});
		
		
		
		dotBtn.setFont(new java.awt.Font("SansSerif",0,12));
		dotBtn.setForeground(Color.black);
		dotBtn.setBorder(BorderFactory.createRaisedBevelBorder());
		dotBtn.setText(".");
		dotBtn.addActionListener(new java.awt.event.ActionListener(){
		
		public void actionPerformed(ActionEvent e){
			if(tfResult.getText().indexOf(".")!=-1)return;
			if(!isNew&&tfResult.getText()!="")
			tfResult.setText(tfResult.getText()+".");
			else
			tfResult.setText("0.");
			isNew=false;
		}	
		});
		
		tfResult.setBorder(BorderFactory.createLoweredBevelBorder());
		tfResult.setDisabledTextColor(Color.white);
		tfResult.setEditable(false);
		tfResult.setText("0");
		tfResult.setHorizontalAlignment(SwingConstants.RIGHT);
		//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
		panel1.setLayout(gridBagLayout1);
		panel1.setPreferredSize(new Dimension(333,30));
		panel1.add(tfResult,new GridBagConstraints(1,0,1,1,0.0,0.0,
		GridBagConstraints.CENTER,
		GridBagConstraints.NONE,
		new Insets(0,15,0,0),155,0));
		//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
			
		panel2.setBorder(BorderFactory.createRaisedBevelBorder());
		gridLayout1.setColumns(6);
		gridLayout1.setHgap(2);
		gridLayout1.setRows(4);
		gridLayout1.setVgap(2);
		panel2.setLayout(gridLayout1);
		panel2.add(btn7,null);
		panel2.add(btn8,null);
		panel2.add(btn9,null);
		panel2.add(addBtn,null);
		panel2.add(btn4,null);
		panel2.add(btn5,null);
		panel2.add(btn6,null);
		panel2.add(subtractBtn,null);
		panel2.add(btn1,null);
		panel2.add(btn2,null);
		panel2.add(btn3,null);
		panel2.add(multiBtn,null);
		panel2.add(btn0,null);
		panel2.add(dotBtn,null);
		panel2.add(equalBtn,null);
		panel2.add(divBtn,null);
		
		//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
		
		this.getContentPane().setLayout(gridBagLayout2);
		this.getContentPane().add(panel2,new GridBagConstraints(0,1,1,1,1.0,1.0,
		GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,
		new Insets(1,0,1,4),190,15));
		
		this.getContentPane().add(panel1,new GridBagConstraints(0,1,1,1,1.0,1.0,
		GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,
		new Insets(1,0,1,4),23,0));
		
		
		this.setResizable(false);
		this.setTitle("Calculator");
		this.addWindowListener(new java.awt.event.WindowAdapter(){
			public void windowClosing(WindowEvent e)
			{
				System.exit(0);
			}
			
		});
		
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
	
}

	/**
	 * Method main
	 *
	 *
	 * @param args
	 *
	 */
	public static void main(String[] args) {
		// TODO: Add your code here
		Calculator mf=new Calculator();
		mf.setBounds(300,200,240,172);
		
		mf.show();
		
		
	}
	void equalaction(ActionEvent e)
	{
		if(recentOperation==null||recentNum==null||tfResult.getText().equals(""))return;
		
		double last=0,now=0;
		try
		{
			last=Double.parseDouble(recentNum);
			now=Double.parseDouble(tfResult.getText());
			}
			catch(NumberFormatException ne)
			{
				recentOperation=null;
				recentNum=null;
				tfResult.setText("the data is not legality");
				System.out.println("the data is not legality");
				isNew=true;
				return;
			}
			if(recentOperation.equals("add"))
			{
				int r=(int)(last+now);
				if(r==last+now)
				
					tfResult.setText(""+r);
					else
					tfResult.setText(""+(last+now));
					
				
			}
			if(recentOperation.equals("subtract"))
			{
				int r=(int)(last-now);
				if(r==last-now)
				tfResult.setText(""+r);
				else
				tfResult.setText(""+(last-now));
				}
				if(recentOperation.equals("multiply"))
				{
					int r=(int)(last*now);
					if(r==last*now)
					tfResult.setText(""+r);
					else
					tfResult.setText(""+(last*now));
					
				}
				if(recentOperation.equals("divide"));
				{
					int r=(int)(last/now);
					if(r==last/now)
					tfResult.setText(""+r);
					else 
					tfResult.setText(""+(last/now));
					
				}
				recentNum=tfResult.getText();
				recentOperation=null;
				isNew=true;
			
		}
	}














































































































































⌨️ 快捷键说明

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