Java代码实现可视化计算器程序
时间: 2023-04-02 16:03:55 浏览: 136
可以使用 Java Swing 库来实现可视化计算器程序。以下是一个简单的示例代码:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculator extends JFrame implements ActionListener {
private JTextField textField;
private JButton[] buttons;
private String[] buttonLabels = {
"7", "8", "9", "/",
"4", "5", "6", "*",
"1", "2", "3", "-",
"", ".", "=", "+"
};
private double result = ;
private String operator = "";
private boolean start = true;
public Calculator() {
setTitle("Calculator");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
textField = new JTextField(10);
textField.setEditable(false);
textField.setHorizontalAlignment(JTextField.RIGHT);
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(4, 4));
buttons = new JButton[buttonLabels.length];
for (int i = ; i < buttonLabels.length; i++) {
buttons[i] = new JButton(buttonLabels[i]);
buttons[i].addActionListener(this);
buttonPanel.add(buttons[i]);
}
add(textField, BorderLayout.NORTH);
add(buttonPanel, BorderLayout.CENTER);
pack();
setLocationRelativeTo(null);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if (command.matches("[-9.]")) {
if (start) {
textField.setText(command);
start = false;
} else {
textField.setText(textField.getText() + command);
}
} else if (command.matches("[*/\\-+]")) {
if (!start) {
calculate(Double.parseDouble(textField.getText()));
operator = command;
start = true;
} else {
operator = command;
}
} else if (command.equals("=")) {
if (!start) {
calculate(Double.parseDouble(textField.getText()));
start = true;
}
} else if (command.equals("C")) {
result = ;
operator = "";
start = true;
textField.setText("");
}
}
private void calculate(double number) {
switch (operator) {
case "+":
result += number;
break;
case "-":
result -= number;
break;
case "*":
result *= number;
break;
case "/":
result /= number;
break;
default:
result = number;
break;
}
textField.setText(Double.toString(result));
}
public static void main(String[] args) {
new Calculator();
}
}
```
这个程序使用了一个文本框和一个按钮面板来实现计算器的界面。按钮面板使用了 GridLayout 布局管理器,将按钮按照 4 行 4 列的方式排列。每个按钮都添加了一个 ActionListener,当用户点击按钮时,程序会根据按钮的标签执行相应的操作。
程序使用了一个 result 变量来保存计算结果,一个 operator 变量来保存当前的运算符,一个 start 变量来表示是否需要清空文本框。当用户点击数字按钮时,程序会将数字添加到文本框中。当用户点击运算符按钮时,程序会根据当前的运算符和文本框中的数字计算结果,并将结果保存到 result 变量中。当用户点击等号按钮时,程序会根据当前的运算符和文本框中的数字计算结果,并将结果显示在文本框中。当用户点击清除按钮时,程序会将 result、operator 和文本框都清空。
这个程序只是一个简单的示例,还有很多可以改进的地方。例如,可以添加更多的运算符和功能,可以添加错误处理机制,可以美化界面等。
阅读全文