利用java开发一个可以进行四则运算的图形化计算器
时间: 2024-06-08 08:10:42 浏览: 97
用java语言实现的四则运算计算器
好的,我可以给您提供一个简单的思路:
1. 创建一个 Java Swing 窗口界面,包含数字键盘、运算符、等号和清空按钮。
2. 定义一个文本框用于显示输入和计算结果。
3. 为数字键盘和运算符按钮添加 ActionListener 监听器,点击后将相应字符追加到文本框中。
4. 为等号按钮添加 ActionListener 监听器,点击后从文本框中获取表达式,利用 Java ScriptEngine 计算结果,并将结果显示到文本框中。
5. 为清空按钮添加 ActionListener 监听器,点击后清空文本框。
下面是一个简单的代码示例:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.script.*;
public class Calculator extends JFrame implements ActionListener{
private JTextField textField;
private String expression;
private ScriptEngineManager manager;
private ScriptEngine engine;
public Calculator(){
super("Calculator");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 400);
setLayout(new BorderLayout());
textField = new JTextField();
textField.setEditable(false);
add(textField, BorderLayout.NORTH);
JPanel buttonPanel = new JPanel(new GridLayout(4, 4));
JButton btn1 = new JButton("1");
btn1.addActionListener(this);
buttonPanel.add(btn1);
JButton btn2 = new JButton("2");
btn2.addActionListener(this);
buttonPanel.add(btn2);
JButton btn3 = new JButton("3");
btn3.addActionListener(this);
buttonPanel.add(btn3);
JButton btnPlus = new JButton("+");
btnPlus.addActionListener(this);
buttonPanel.add(btnPlus);
JButton btn4 = new JButton("4");
btn4.addActionListener(this);
buttonPanel.add(btn4);
JButton btn5 = new JButton("5");
btn5.addActionListener(this);
buttonPanel.add(btn5);
JButton btn6 = new JButton("6");
btn6.addActionListener(this);
buttonPanel.add(btn6);
JButton btnMinus = new JButton("-");
btnMinus.addActionListener(this);
buttonPanel.add(btnMinus);
JButton btn7 = new JButton("7");
btn7.addActionListener(this);
buttonPanel.add(btn7);
JButton btn8 = new JButton("8");
btn8.addActionListener(this);
buttonPanel.add(btn8);
JButton btn9 = new JButton("9");
btn9.addActionListener(this);
buttonPanel.add(btn9);
JButton btnMul = new JButton("*");
btnMul.addActionListener(this);
buttonPanel.add(btnMul);
JButton btnClear = new JButton("C");
btnClear.addActionListener(this);
buttonPanel.add(btnClear);
JButton btn0 = new JButton("0");
btn0.addActionListener(this);
buttonPanel.add(btn0);
JButton btnEqual = new JButton("=");
btnEqual.addActionListener(this);
buttonPanel.add(btnEqual);
JButton btnDiv = new JButton("/");
btnDiv.addActionListener(this);
buttonPanel.add(btnDiv);
add(buttonPanel, BorderLayout.CENTER);
manager = new ScriptEngineManager();
engine = manager.getEngineByName("JavaScript");
setVisible(true);
}
public void actionPerformed(ActionEvent e){
String buttonText = ((JButton)e.getSource()).getText();
if(buttonText.equals("=")){
try{
expression = textField.getText();
Object result = engine.eval(expression);
textField.setText(result.toString());
}
catch(ScriptException ex){
textField.setText("Error");
}
}
else if(buttonText.equals("C")){
textField.setText("");
}
else{
textField.setText(textField.getText() + buttonText);
}
}
public static void main(String[] args){
new Calculator();
}
}
```
这只是一个简单的示例,您可以根据需要进行改进和完善。
阅读全文