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

📄 calculator.java

📁 java学习一门新的知识
💻 JAVA
字号:
package MyPackage;

import java.awt.*;
import java.awt.event.*;
import java.lang.*;
import javax.swing.*;

public class calculator extends JFrame implements ActionListener {

	// 设定缺省初始值

	private double result = 0, data1 = 0, radixPointDepth = 1;
	private boolean radixPointIndicate = false, resultIndicate = false;
	private char prec = '+';

	// 定义组件

	JButton addButton = new JButton("+");
	JButton deductButton = new JButton("-");
	JButton multiplicationButton = new JButton("*");
	JButton divisionButton = new JButton("/");
	JButton pointButton = new JButton(".");
	JButton equalButton = new JButton("=");
	JTextField viewText = new JTextField("0", 30);
	// 定义数字?
	JButton[] numButton = new JButton[10];
	static String code;

	void setnumButton() {
		for (int i = 0; i < 10; i++) {
			// numButton[i] =new JButton(new Integer(i).toString());
			numButton[i] = new JButton(String.valueOf(i));
		}
	}

	// 定义构造方法

	public calculator(String title) {
		super(title);
		setSize(210, 170);
		this.setResizable(false);

		setCalculator();
		setActionListener();

	}

	/* 定义setcalculator方法用于添加组件 */
	void setCalculator() {
		setnumButton();
		Container c = getContentPane();
		JPanel mainPanel = new JPanel();
		mainPanel.setLayout(new GridLayout(4, 4, 10, 10));
		mainPanel.setBackground(Color.yellow);
		mainPanel.add(numButton[7]);
		mainPanel.add(numButton[8]);
		mainPanel.add(numButton[9]);
		mainPanel.add(divisionButton);
		mainPanel.add(numButton[4]);
		mainPanel.add(numButton[5]);
		mainPanel.add(numButton[6]);
		mainPanel.add(multiplicationButton);
		mainPanel.add(numButton[1]);
		mainPanel.add(numButton[2]);
		mainPanel.add(numButton[3]);
		mainPanel.add(deductButton);
		mainPanel.add(numButton[0]);
		mainPanel.add(pointButton);
		mainPanel.add(equalButton);
		mainPanel.add(addButton);

		viewText.setHorizontalAlignment(JTextField.RIGHT);
		viewText.setEditable(false);
		viewText.setBackground(Color.cyan);
		c.add(viewText, BorderLayout.NORTH);
		c.add(mainPanel, BorderLayout.CENTER);
	}

	// 定义setActionListener方法
	// 功能:事件源绑定
	// 覆盖actionPerformed方法

	void setActionListener() {
		for (int i = 0; i < 10; i++) {
			numButton[i].addActionListener(this);
		}

		addButton.addActionListener(this);
		deductButton.addActionListener(this);
		multiplicationButton.addActionListener(this);
		divisionButton.addActionListener(this);
		pointButton.addActionListener(this);
		equalButton.addActionListener(this);
	}

	// 覆盖actionPerformed方法
	public void actionPerformed(ActionEvent e) {

		String s;
		s = e.getActionCommand();

		switch (s.charAt(0)) {
		case '0':
		case '1':
		case '2':
		case '3':
		case '4':
		case '5':
		case '6':
		case '7':
		case '8':
		case '9':
			if (resultIndicate) {
				result = 0;
				data1 = 0;
				prec = '+';

			}
			Integer Int1 = new Integer(s);
			if (radixPointIndicate) {
				radixPointDepth = radixPointDepth / 10;
				data1 = data1 + (Int1.intValue()) * radixPointDepth;
			} else {
				data1 = data1 * 10 + (Int1.intValue());
			}
			Double displayNumber = new Double(data1);
			viewText.setText(displayNumber.toString());
			resultIndicate = false;
			break;

		case '+':
		case '-':
		case '*':
		case '/':
		case '=':
			if (s.charAt(0) != '=' && resultIndicate) {
				prec = s.charAt(0);
				resultIndicate = false;
			} else {
				switch (prec) {
				case '+':
					result = result + data1;
					break;
				case '-':
					result = result - data1;
					break;
				case '*':
					result = result * data1;
					break;
				case '/':
					result = result / data1;
					break;

				}
			}
			radixPointIndicate = false;
			radixPointDepth = 1;
			displayNumber = new Double(result);
			viewText.setText(displayNumber.toString());

			if (s.charAt(0) != '=') {
				data1 = 0;
				prec = s.charAt(0);
			} else {
				resultIndicate = true;
			}
			break;

		case '.':
			radixPointIndicate = true;
			break;

		}

	}


	// 主函数
	// 功能:实例化 显示MyCalculator类的对象

	public static void main(String[] args) {
		calculator MyCalculator = new calculator("计算器");

		MyCalculator.show();
		MyCalculator.setLocation(400, 300);
	}
}

⌨️ 快捷键说明

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