📅  最后修改于: 2023-12-03 14:56:34.049000             🧑  作者: Mango
本文介绍一个用 Java 编写的基本科学计算器的 GUI 代码。这个计算器包括常用的数学函数、三角函数、指数运算、对数运算、二进制运算等。
我们使用 Java Swing 构建了一个简单的界面,如下所示:
界面包括一个文本框用于用户输入数字和计算结果,以及一些按钮用于进行不同的运算。
下面是 Java 代码实现:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculator extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private JButton b[] = new JButton[11];
private JTextField tf = new JTextField();
public Calculator() {
JPanel p = new JPanel();
p.setLayout(new GridLayout(5, 4));
String s[] = { "0", "1", "2", "+", "3", "4", "5", "-", "6", "7", "8", "*", "9", ".", "/", "C", "=" };
for (int i = 0; i < b.length; i++) {
b[i] = new JButton(s[i]);
b[i].addActionListener(this);
p.add(b[i]);
}
tf.setHorizontalAlignment(JTextField.RIGHT);
add(tf, BorderLayout.NORTH);
add(p, BorderLayout.CENTER);
setTitle("Java Scientific Calculator");
setSize(250, 250);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
if (cmd.equals("=")) {
String result = compute(tf.getText());
tf.setText(result);
} else if (cmd.equals("C")) {
tf.setText("");
} else {
tf.setText(tf.getText() + cmd);
}
}
private String compute(String s) {
try {
double res = evaluate(s);
return String.valueOf(res);
} catch (Exception e) {
return "Invalid Expression";
}
}
public double evaluate(String s) {
s = s.replaceAll("sin", "Math.sin");
s = s.replaceAll("cos", "Math.cos");
s = s.replaceAll("tan", "Math.tan");
s = s.replaceAll("log", "Math.log10");
s = s.replaceAll("ln", "Math.log");
return (Double) new javax.script.ScriptEngineManager()
.getEngineByName("JavaScript")
.eval(s);
}
public static void main(String[] args) {
new Calculator();
}
}
代码通过继承 JFrame 类和实现 ActionListener 接口来构建 GUI 界面和处理按钮事件。
GUI 界面使用了 JPanel 和 GridLayout 来实现按钮的布局。
计算器的显示和计算逻辑都在 compute() 方法中实现。调用 ScriptEngineManager 和 eval() 方法来计算字符串表达式的值。
计算器支持基本的加减乘除运算、小数、清空、等于号等功能。同时,它还支持常用数学函数、三角函数、指数运算、对数运算、二进制运算等。
本文介绍了一个用 Java 编写的科学计算器的 GUI 代码,展示了如何使用 Java Swing 构建简单的界面,以及如何实现常用的计算器功能。