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

📄 calculator.java

📁 用Java编写的计算器!功能很强大!!!
💻 JAVA
字号:
package project.calculator;

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class  Calculator extends JFrame implements ActionListener {
	JButton[] buttons; // 0~9的数字按钮
	JPanel panel;
	JLabel screen; // 显示屏幕
	double first_operand, last_operand; // 存放的两个操作数
	int operator_kind; // 运算符的类型

	public Calculator() {
		super("GUI综合实例:我的计算器");
		panel = new JPanel();
		panel.setLayout(new GridLayout(4,4,0,0));
		String str = "789/456*123-0.=+";
		buttons = new JButton[16];
		for (int i = 0; i < 16; i++) {
			buttons[i] = new JButton("" + str.charAt(i));
			panel.add(buttons[i]);
			buttons[i].addActionListener(this);
		}
		screen = new JLabel("0");
		screen.setFont(new Font("SansSerif", Font.BOLD, 30));
		this.setLayout(new BorderLayout());
		this.add(screen,BorderLayout.NORTH);
		this.add(panel,BorderLayout.CENTER);
		this.setSize(400, 400);
		this.show();
	}

	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		int choice = -1;
		for (int i = 0; i < buttons.length; i++) {
			if (e.getSource() == buttons[i]) {
				choice = i;
				break;
			}
		}
		switch (choice) {// String str = "789/456*123-0.=+";
		case 0:// 数字响应事件
		case 1:
		case 2:
		case 4:
		case 5:
		case 6:
		case 8:
		case 9:
		case 10:
		case 12:
			if (screen.getText() == "0")
				screen.setText(buttons[choice].getLabel());
			else
				screen.setText(screen.getText() + buttons[choice].getLabel());
			break;
		case 13: // 小数点响应事件
			if (!screen.getText().contains("."))
				screen.setText(screen.getText() + ".");
			else
				JOptionPane.showMessageDialog(null, "已经有小数点了");
			break;
		case 3:
		case 7:
		case 11:
		case 15: // 运算符响应事件
			operator_kind = (16 - choice) / 4;
			first_operand = Double.parseDouble(screen.getText());
			screen.setText("0");
			break;
		case 14: // 等号响应事件
			last_operand = Double.parseDouble(screen.getText());
			switch (operator_kind) {
			case 0:
				screen.setText(first_operand + last_operand + "");
				break;
			case 1:
				screen.setText(first_operand - last_operand + "");
				break;
			case 2:
				screen.setText(first_operand * last_operand + "");
				break;
			case 3:
				screen.setText(first_operand / last_operand + "");
				break;
			}
		}
	}
	public static void main(String[] args) {
		new Calculator();
	}
}

⌨️ 快捷键说明

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