📄 calculator.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 + -