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

📄 calculator2.java

📁 这个压缩文件里包含三个简易计算器代码
💻 JAVA
字号:
package com.Calculator2;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

public class Calculator2 {
	/*
	 * 声明各内部组件
	 */
	private Frame frame = null;

	private Panel upPanel = null;

	private Panel downPanel = null;

	private BorderLayout mainLayout = null;

	private GridLayout layout = null;

	private Button button0 = null;

	private Button button1 = null;

	private Button button2 = null;

	private Button button3 = null;

	private Button button4 = null;

	private Button button5 = null;

	private Button button6 = null;

	private Button button7 = null;

	private Button button8 = null;

	private Button button9 = null;

	private Button buttonMul = null;

	private Button buttonDiv = null;

	private Button buttonAdd = null;

	private Button buttonSub = null;

	private Button buttonDot = null;

	private Button buttonVal = null;

	private TextField text = null;

	MouseListenerC ml = null;

	MouseListenerO mo = null;

	/*
	 * 记录text的值
	 */
	private double textBef = 0.0;

	private double textAft = 0.0;

	/*
	 * qingling 记录运算后如果继续输入数据就得情零的标志
	 */
	private boolean qingling = false;

	/*
	 * yuansuan 记录输入运算符的标志
	 */
	private boolean yunsuan = false;

	/*
	 * operator 记录运算符
	 */
	private String operator = null;

	/*
	 * 声明一个方法来转换string到int,因为text里的数据都是String的
	 */
	private double toDouble(String text) {
		try {
			return Double.parseDouble(text);
		} catch (Exception e) {
			e.printStackTrace(System.err);
		}
		return 0.0;
	}

	/*
	 * 做一个方法来存取输入的数据
	 */
	private void store(String t) {
		if (!yunsuan) {
			textBef = toDouble(t);
		} else {
			textAft = toDouble(t);

		}
	}

	/*
	 * 做一个初始化组件的方法initFrame()
	 */
	private void initFrame() {
		{
			frame = new Frame("Calculator");
			upPanel = new Panel();
			downPanel = new Panel();
			mainLayout = new BorderLayout();
			layout = new GridLayout(4, 4);
			button0 = new Button("0");
			button1 = new Button("1");
			button2 = new Button("2");
			button3 = new Button("3");
			button4 = new Button("4");
			button5 = new Button("5");
			button6 = new Button("6");
			button7 = new Button("7");
			button8 = new Button("8");
			button9 = new Button("9");
			buttonMul = new Button("*");
			buttonDiv = new Button("/");
			buttonSub = new Button("-");
			buttonAdd = new Button("+");
			buttonDot = new Button(".");
			buttonVal = new Button("=");
			text = new TextField(30);
			text.setForeground(Color.RED);
			ml = this.new MouseListenerC();
			mo = this.new MouseListenerO();
			// text.setAlignment(text.RIGHT);
		}
		{
			frame.setSize(250, 250);
			frame.setLayout(mainLayout);
			frame.add(upPanel, BorderLayout.NORTH);
			frame.add(downPanel, BorderLayout.CENTER);
			downPanel.setLayout(layout);
			upPanel.add(text);
			downPanel.add(button0);
			downPanel.add(button1);
			downPanel.add(button2);
			downPanel.add(button3);
			downPanel.add(button4);
			downPanel.add(button5);
			downPanel.add(button6);
			downPanel.add(button7);
			downPanel.add(button8);
			downPanel.add(button9);
			downPanel.add(buttonDot);
			downPanel.add(buttonMul);
			downPanel.add(buttonDiv);
			downPanel.add(buttonAdd);
			downPanel.add(buttonSub);
			downPanel.add(buttonVal);

		}
		{
			frame.addWindowListener(new WindowListener() {

				public void windowActivated(WindowEvent e) {
					// TODO 自动生成方法存根

				}

				public void windowClosed(WindowEvent e) {
					// TODO 自动生成方法存根

				}

				public void windowClosing(WindowEvent e) {
					System.exit(0);

				}

				public void windowDeactivated(WindowEvent e) {
					// TODO 自动生成方法存根

				}

				public void windowDeiconified(WindowEvent e) {
					// TODO 自动生成方法存根

				}

				public void windowIconified(WindowEvent e) {
					// TODO 自动生成方法存根

				}

				public void windowOpened(WindowEvent e) {
					// TODO 自动生成方法存根

				}
			});
			button0.addMouseListener(ml);
			button1.addMouseListener(ml);
			button2.addMouseListener(ml);
			button3.addMouseListener(ml);
			button4.addMouseListener(ml);
			button5.addMouseListener(ml);
			button6.addMouseListener(ml);
			button7.addMouseListener(ml);
			button8.addMouseListener(ml);
			button9.addMouseListener(ml);
			buttonDot.addMouseListener(ml);
			buttonMul.addMouseListener(mo);
			buttonDiv.addMouseListener(mo);
			buttonAdd.addMouseListener(mo);
			buttonSub.addMouseListener(mo);
			buttonVal.addMouseListener(mo);
		}
		{
			frame.setVisible(true);
		}
	}

	public Calculator2() {
		initFrame();
	}

	/*public static void main(String[] args) {
		Calculator cal = new Calculator();

	}*/

	/*
	 * 以下是监听器的设计
	 */
	class MouseListenerC implements MouseListener {

		public void mouseClicked(MouseEvent e) {
			Button b = (Button) e.getSource();
			String temp = b.getLabel();

			/*
			 * 看是否清零,就是看是否运算过........
			 */
			if (!qingling) {
				temp = text.getText() + temp;
				text.setText(temp);
				store(temp);
			} else {
				text.setText(temp);
				store(temp);
				qingling = false;
			}

		}

		public void mouseEntered(MouseEvent e) {
			// TODO 自动生成方法存根

		}

		public void mouseExited(MouseEvent e) {
			// TODO 自动生成方法存根

		}

		public void mousePressed(MouseEvent e) {
			// TODO 自动生成方法存根

		}

		public void mouseReleased(MouseEvent e) {
			// TODO 自动生成方法存根

		}

	}

	class MouseListenerO implements MouseListener {

		public void mouseClicked(MouseEvent e) {
			Button b = (Button) e.getSource();
			String temp = b.getLabel();
			if (temp.equals("=")) {
				char t = operator.charAt(0);
				switch (t) {
				case '+':
					textBef = textBef + textAft;
					text.setText(textBef + "");
					yunsuan = false;
					break;
				case '-':
					textBef = textBef - textAft;
					text.setText(textBef + "");
					yunsuan = false;
					break;
				case '*':
					textBef = textBef * textAft;
					text.setText(textBef + "");
					yunsuan = false;
					break;
				case '/':
					textBef = textBef / textAft;
					text.setText(textBef + "");
					yunsuan = false;
					break;
				}
				qingling = true;
			} else {
				operator = temp;
				yunsuan = true;
				text.setText("");
			}

		}

		public void mouseEntered(MouseEvent e) {
			// TODO 自动生成方法存根

		}

		public void mouseExited(MouseEvent e) {
			// TODO 自动生成方法存根 

		}

		public void mousePressed(MouseEvent e) {
			// TODO 自动生成方法存根 

		}

		public void mouseReleased(MouseEvent e) {
			// TODO 自动生成方法存根 

		}

	}

}

⌨️ 快捷键说明

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