计算器要可以选择“+”,”-“,”*“,”/“四个运算符号选择 实现以下计算器: 提示:显示结果的JTextField不可编辑,可以用JTextField对象的setEditable(false);来实现。 点击"Calculate"按钮实现简单四则运算。如果计算未出现异常,显示结果。 复选框"Round to integer"若勾选,则计算结果四舍五入到整数(用Math.round()函数)。 若计算出现异常,在结果的JTextField中显示错误信息。例如,未输入数字,则转换成double时抛出异常,使用异常捕获机制,显示"Error: " + e.getMessage()。 点击"Clean"按钮,清空所有JTextField(调用JTextField对象的setText("")就可以了)。
时间: 2024-03-12 12:48:32 浏览: 73
C#实现简单计算器(+-*/其他方法类似,弄懂这些其他就水到渠成了)
好的,我可以帮你解答这个问题。这是一个简单的GUI程序,需要使用Java Swing库。以下是程序的示例代码:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculator extends JFrame implements ActionListener {
private JTextField num1Field, num2Field, resultField;
private JCheckBox roundCheckBox;
private JComboBox<String> operatorBox;
public Calculator() {
super("Calculator");
// Create input fields
JPanel inputPanel = new JPanel(new GridLayout(3, 2));
inputPanel.add(new JLabel("Number 1:"));
num1Field = new JTextField();
inputPanel.add(num1Field);
inputPanel.add(new JLabel("Number 2:"));
num2Field = new JTextField();
inputPanel.add(num2Field);
inputPanel.add(new JLabel("Operator:"));
operatorBox = new JComboBox<String>(new String[]{"+", "-", "*", "/"});
inputPanel.add(operatorBox);
// Create checkbox
roundCheckBox = new JCheckBox("Round to integer");
inputPanel.add(roundCheckBox);
// Create calculate button
JButton calculateButton = new JButton("Calculate");
calculateButton.addActionListener(this);
// Create clear button
JButton clearButton = new JButton("Clear");
clearButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
num1Field.setText("");
num2Field.setText("");
resultField.setText("");
}
});
// Create result field
resultField = new JTextField();
resultField.setEditable(false);
// Add components to frame
JPanel buttonPanel = new JPanel(new GridLayout(1, 2));
buttonPanel.add(calculateButton);
buttonPanel.add(clearButton);
Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
contentPane.add(inputPanel, BorderLayout.NORTH);
contentPane.add(buttonPanel, BorderLayout.CENTER);
contentPane.add(resultField, BorderLayout.SOUTH);
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
try {
// Get inputs
double num1 = Double.parseDouble(num1Field.getText());
double num2 = Double.parseDouble(num2Field.getText());
String operator = (String) operatorBox.getSelectedItem();
// Calculate result
double result;
switch (operator) {
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
result = num1 / num2;
break;
default:
throw new IllegalArgumentException("Invalid operator");
}
// Round result if necessary
if (roundCheckBox.isSelected()) {
result = Math.round(result);
}
// Display result
resultField.setText(Double.toString(result));
} catch (NumberFormatException | IllegalArgumentException ex) {
// Display error message
resultField.setText("Error: " + ex.getMessage());
}
}
public static void main(String[] args) {
new Calculator();
}
}
```
这个程序创建了一个窗口,包含两个文本框、一个复选框、一个下拉框、两个按钮和一个结果文本框。用户输入两个数字和运算符,点击“Calculate”按钮进行计算,结果显示在结果文本框中。如果用户勾选了“Round to integer”复选框,则结果会四舍五入到整数。如果计算过程中发生了异常,则会在结果文本框中显示错误信息。点击“Clear”按钮可以清空所有文本框。
阅读全文