使用Java编写一个简单计算器
编者思路:
(1)需要对窗体和窗体中的组件有一个合理的布局,使用了swing函数;
(2)需要为这些数字键和运算符键添加动作监听,使其在点击时,能够在文本框中输入相应的值;
(3)获取文本框中的值,再进行相应的运算,并将结果输出的结果显示文本框中。
计算器界面如下图所示
完整版源代码:
package main;
import java.awt.BorderLayout;
import java.awt.Color;
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.JPanel;
import javax.swing.JTextField;
public class Calculator extends JFrame implements ActionListener{
//计算器上的键的显示名字
private String[] KEYS= {
"7", "8", "9", "/", "sqrt", "4", "5", "6",
"*", "%", "1", "2", "3", "-", "1/x", "0", "+/-", ".", "+", "="};
//计算器上功能的显示名字
private String[] COMMAND = {
"Backspace", "CE", "C"};
//计算器左边M的显示名字
private String[] M = {
" ", "MC", "MR", "MS", "M+"};
//计算器上键的按钮
private JButton keys[] = new JButton[KEYS.length];
//计算器上功能的按钮
private JButton commands[] = new JButton[COMMAND.length];
//计算器上左边M的按钮
private JButton m[] = new JButton[M.length];
//计算结果文本框
private JTextField resultText = new JTextField("0");
//用户是否按的是整个表达式的第一个数字或者是运算符后的第一个数字
private boolean firstDigit = true;
//计算的中间结果
private double resultNum = 0.0;
// 当前运算的运算符
private String operator = "=";
// 操作是否合法
private boolean operateValidFlag = true;
/**
* 构造函数
*/
public Calculator() {
super();
// 初始化计算器
init();
// 设置计算器的背景颜色
this.setBackground(Color.LIGHT_GRAY);
this.setTitle("计算器");
// 在屏幕(500, 300)坐标处显示计算器
this.setLocation(500, 300);
// 不许修改计算器的大小
this.setResizable(false);
// 使计算器中各组件大小合适
this