编写程序,实现简单的计算器 (1) 用户在窗口中的两个文本框中输入参与运算的两个操作数。 (2) 用户在下拉列表中选择运算符触发ItemEvent,ItemEvent事件的监视器operator(OperatorListener类负责创建)获得运算符,并将运算符传递给ActionEvent事件的监视器computer。 (3) 用户单击按钮触发ActionEvent事件,监视器computer(ComputerListener类负责创建)给出运算结果。
时间: 2024-03-04 16:49:12 浏览: 70
好的,下面是代码实现:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator extends JFrame {
private JTextField num1Field, num2Field, resultField;
private JComboBox<String> operatorBox;
private JButton computeButton;
public Calculator() {
// 设置窗口标题
setTitle("简单计算器");
// 设置布局为网格布局
setLayout(new GridLayout(4, 2, 5, 5));
// 添加操作数输入框和标签
add(new JLabel("操作数1:"));
num1Field = new JTextField();
add(num1Field);
add(new JLabel("操作数2:"));
num2Field = new JTextField();
add(num2Field);
// 添加运算符选择框和标签
add(new JLabel("运算符:"));
operatorBox = new JComboBox<String>();
operatorBox.addItem("+");
operatorBox.addItem("-");
operatorBox.addItem("*");
operatorBox.addItem("/");
operatorBox.addItem("%");
operatorBox.addItemListener(new OperatorListener());
add(operatorBox);
// 添加计算按钮
add(new JLabel(""));
computeButton = new JButton("计算");
computeButton.addActionListener(new ComputerListener());
add(computeButton);
// 添加结果输出框和标签
add(new JLabel("结果:"));
resultField = new JTextField();
resultField.setEditable(false);
add(resultField);
// 设置窗口大小并显示
setSize(300, 150);
setVisible(true);
}
// 运算符选择框的事件监听器
private class OperatorListener implements ItemListener {
public void itemStateChanged(ItemEvent e) {
// 获取选择的运算符
String operator = (String) operatorBox.getSelectedItem();
// 将运算符传递给计算按钮的事件监听器
computeButton.setActionCommand(operator);
}
}
// 计算按钮的事件监听器
private class ComputerListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
// 获取操作数1和操作数2
double num1 = Double.parseDouble(num1Field.getText());
double num2 = Double.parseDouble(num2Field.getText());
// 根据选择的运算符进行计算
String operator = e.getActionCommand();
double result = 0;
switch (operator) {
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
result = num1 / num2;
break;
case "%":
result = num1 % num2;
break;
}
// 将计算结果输出到结果输出框
resultField.setText(Double.toString(result));
}
}
public static void main(String[] args) {
new Calculator();
}
}
```
运行程序后,会弹出一个窗口,可以在其中输入操作数和选择运算符,然后单击计算按钮,就会在结果输出框中输出计算结果。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)