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

📄 calcultor.java

📁 JAVA语言编写的原始的计算器
💻 JAVA
字号:
package calcultor;
/*
 * 计算器
 */
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JOptionPane;

public class Calcultor {
	private JFrame frame;
	private JTextField field;
	private JButton clear;
	private JButton[] buttons;
	private char operator;
	private double number1,number2;
	
	public Calcultor(){
		frame = new JFrame("范金瑞的计算器 v1.0");
		field = new JTextField(20);
		frame.setLayout(new BorderLayout());
		clear = new JButton("C");
		buttons = new JButton[16];
		
		String str = "123+456-789*0/.=";
		for(int i = 0;i<buttons.length;i++){
			buttons[i]= new JButton(str.charAt(i)+"");
		}
		init();
		addEventListener();
		addEventListener1();
		frame.setSize(300,200);
		frame.setVisible(true);
//		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
		
	}
	
	public void init(){
		JPanel north = new JPanel();
		JPanel center = new JPanel();
		north.setLayout(new FlowLayout());
		center.setLayout(new GridLayout(4,4,5,5));
		
		north.add(field);
		north.add(clear);
		
		for(int i = 0;i<buttons.length;i++){
			center.add(buttons[i]);
		}
		frame.add(north,BorderLayout.NORTH);
		frame.add(center,BorderLayout.CENTER);
	}
	public void addEventListener(){
		for(int i = 0;i<buttons.length;i++){
			buttons[i].addActionListener(new ActionListener(){

				public void actionPerformed(ActionEvent e) {
					String str = e.getActionCommand().trim();
					if("0123456789.".indexOf(str)!=-1){//"0123456789.".indexOf(str)!=-1
						field.setText(field.getText()+str);
						return;
					}
					if("+-*/".indexOf(str)!=-1){
						number1=Double.parseDouble(field.getText());
						field.setText("");
						operator = str.charAt(0);
						return;
					}
					if(str.equals("=")){
						number2 = Double.parseDouble(field.getText());
						double result = 0.0;
						switch(operator){
						case '+': result = number1+number2;break;
						case '-' :result = number1-number2;break;
						case '*' :result = number1*number2;break;
						case '/' :result = number1/number2;break;
						}
						field.setText(result+"");
						return;
					}
				}
				
			});
		}
		
		clear.addActionListener(new ActionListener(){

			public void actionPerformed(ActionEvent e) {
				field.setText(null);
				number1 = 0.0;
				number2 = 0.0;
				operator='\u0000';
				return;
			}
		});
	}
	public void addEventListener1(){
		frame.addWindowListener(new WindowListener(){

			public void windowActivated(WindowEvent e) {
			}

			public void windowClosed(WindowEvent e) {
			}

			public void windowClosing(WindowEvent e) {
				int op = JOptionPane.showConfirmDialog(frame, "真的确认要退出程序么?", "确认退出", JOptionPane.YES_NO_OPTION);
				if(op == JOptionPane.YES_OPTION){
					System.exit(0);
				}
			}

			public void windowDeactivated(WindowEvent e) {
			}

			public void windowDeiconified(WindowEvent e) {
			}

			public void windowIconified(WindowEvent e) {
			}

			public void windowOpened(WindowEvent e) {
			}
			
		});
	}
	
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new Calcultor();
	}

}

⌨️ 快捷键说明

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