输入若干数值,分别进行加、减、乘、除等,运算符没有优先级,顺序运算。增加要求:① 采用文本行数组,操作数个数可变。② 解决除数为0的问题。③ 区分“/” 为整数除或实数除。利用Java中的Swing组件
时间: 2024-02-12 22:04:11 浏览: 130
基于java Swing实现的出题器。加减乘除,小数,变量数值上下限,变量个数
好的,以下是使用 Java Swing 实现输入若干数值,进行加减乘除等运算的示例代码,同时解决了您提出的增加要求:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class CalculatorGUI extends JFrame implements ActionListener {
private JTextField inputField;
private JTextField outputField;
public CalculatorGUI() {
setTitle("简易计算器");
setSize(300, 150);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
JPanel inputPanel = new JPanel(new FlowLayout());
JLabel inputLabel = new JLabel("输入数值和运算符,以空格分隔:");
inputField = new JTextField(20);
inputPanel.add(inputLabel);
inputPanel.add(inputField);
JPanel outputPanel = new JPanel(new FlowLayout());
JLabel outputLabel = new JLabel("计算结果为:");
outputField = new JTextField(20);
outputField.setEditable(false);
outputPanel.add(outputLabel);
outputPanel.add(outputField);
JPanel buttonPanel = new JPanel(new FlowLayout());
JButton calculateButton = new JButton("计算");
calculateButton.addActionListener(this);
JButton resetButton = new JButton("重置");
resetButton.addActionListener(this);
buttonPanel.add(calculateButton);
buttonPanel.add(resetButton);
Container container = getContentPane();
container.setLayout(new BoxLayout(container, BoxLayout.Y_AXIS));
container.add(inputPanel);
container.add(outputPanel);
container.add(buttonPanel);
}
public void actionPerformed(ActionEvent event) {
String command = event.getActionCommand();
if (command.equals("计算")) {
String input = inputField.getText();
String[] tokens = input.split(" ");
double result = Double.parseDouble(tokens[0]);
for (int i = 1; i < tokens.length; i += 2) {
String operator = tokens[i];
double operand = Double.parseDouble(tokens[i + 1]);
switch (operator) {
case "+":
result += operand;
break;
case "-":
result -= operand;
break;
case "*":
result *= operand;
break;
case "/":
if (operand == 0) {
JOptionPane.showMessageDialog(this, "除数不能为0,请重新输入!");
return;
}
if (i + 2 < tokens.length && tokens[i + 2].equals("/")) {
// 整数除法
result /= (int) operand;
i++; // 跳过第二个 "/"
} else {
// 实数除法
result /= operand;
}
break;
default:
JOptionPane.showMessageDialog(this, "无效的运算符,请重新输入!");
return;
}
}
outputField.setText(Double.toString(result));
} else if (command.equals("重置")) {
inputField.setText("");
outputField.setText("");
}
}
public static void main(String[] args) {
CalculatorGUI calculatorGUI = new CalculatorGUI();
calculatorGUI.setVisible(true);
}
}
```
在这个示例中,我们使用了 `JFrame`、`JPanel`、`JLabel`、`JTextField` 和 `JButton` 等 Swing 组件来构建一个简单的 GUI 界面。用户在输入框中输入数值和运算符,然后点击“计算”按钮,程序会执行相应的计算,并将结果显示在输出框中。如果发生除数为0的错误,程序会弹出一个对话框提示用户重新输入。
输出界面应该是一个包含输入框、输出框和两个按钮的窗口。用户在输入框中输入数值和运算符,然后点击“计算”按钮,程序会将计算结果显示在输出框中。如果用户想要重新输入,可以点击“重置”按钮清空输入框和输出框。
希望这个示例代码对您有帮助!如果您有任何问题,请随时问我。
阅读全文