在以上代码中添加除零错误清理输入框等细节,并加入清除按钮和历史记录功能
时间: 2024-10-21 22:10:54 浏览: 18
在上述代码基础上,我们可以增加除零错误检查、清理输入框以及清除按钮和历史记录功能。以下是修改后的部分代码:
1. **除零错误检查**:
```java
private void performOperation(int opCode) {
try {
int num1 = Integer.parseInt(display[0].getText());
int num2 = Integer.parseInt(display[1].getText());
switch (opCode) {
case 0: // 加法
display[2].setText(String.valueOf(num1 + num2));
break;
// ... 其他运算符的处理类似
case 8: // 除法
if (num2 != 0) {
display[2].setText(String.valueOf(num1 / num2));
} else {
JOptionPane.showMessageDialog(this, "除数不能为零!");
}
break;
}
} catch (NumberFormatException e) {
display[0].setText("");
display[1].setText("");
JOptionPane.showMessageDialog(this, "请输入正确的数字!");
}
}
```
2. **清除输入框和清除按钮**:
新增一个`JButton`代表清除按钮,并添加其点击事件处理器:
```java
private JButton clearBtn = new JButton("C");
add(clearBtn);
// 清除按钮事件处理
clearBtn.addActionListener(e -> {
display[0].setText("");
display[1].setText("");
display[2].setText("");
});
```
3. **历史记录功能**:
可以通过数组存储最近几个操作的结果,创建一个新的历史记录文本框,每次操作后更新历史记录。这里提供一个基本思路,你可以根据需求调整:
```java
private JTextArea historyArea = new JTextArea(5, 15); // 历史记录区域
add(historyArea);
// 模拟添加历史记录(假设当前的操作结果)
String lastResult = display[2].getText();
historyArea.append(lastResult + "\n");
// 更新历史记录区域
historyArea.setCaretPosition(historyArea.getDocument().getLength());
```
现在,代码已包含了除零错误检查、清除输入框的功能以及一个简单的历史记录功能。为了完善,还可以考虑优化布局、添加更多的运算符按钮等。记住,这是一个基础示例,实际项目可能需要更复杂的设计和错误处理。
阅读全文