第一次修改

xzk
xzk 10 months ago
commit 9e122a9ec7

@ -0,0 +1,127 @@
package xzk;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Calculator extends JFrame implements ActionListener {
private JTextField num1Field, num2Field, resultField;
private JComboBox<String> operatorBox;
public Calculator() {
// 设置窗口标题
super("简单计算器");
// 设置布局
setLayout(new BorderLayout());
// 创建面板
JPanel inputPanel = new JPanel(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.insets = new Insets(5, 5, 5, 5); // 设置组件之间的间距
// 创建输入字段和标签
gbc.gridx = 0;
gbc.gridy = 0;
inputPanel.add(new JLabel("第一个数字:"), gbc);
gbc.gridx = 1;
num1Field = new JTextField(10);
inputPanel.add(num1Field, gbc);
gbc.gridy = 1;
gbc.gridx = 0;
inputPanel.add(new JLabel("第二个数字:"), gbc);
gbc.gridx = 1;
num2Field = new JTextField(10);
inputPanel.add(num2Field, gbc);
gbc.gridy = 2;
gbc.gridx = 0;
inputPanel.add(new JLabel("操作符:"), gbc);
gbc.gridx = 1;
operatorBox = new JComboBox<>(new String[]{"+", "-", "*", "/", "%"});
inputPanel.add(operatorBox, gbc);
gbc.gridy = 3;
gbc.gridx = 0;
inputPanel.add(new JLabel("结果:"), gbc);
gbc.gridx = 1;
resultField = new JTextField(10);
resultField.setEditable(false);
inputPanel.add(resultField, gbc);
// 创建计算按钮
JButton calculateButton = new JButton("计算");
gbc.gridy = 4;
gbc.gridx = 0;
gbc.gridwidth = 2;
gbc.fill = GridBagConstraints.HORIZONTAL;
inputPanel.add(calculateButton, gbc);
// 添加事件监听器
calculateButton.addActionListener(this);
// 设置面板背景色
inputPanel.setBackground(Color.LIGHT_GRAY);
// 将面板添加到窗口
add(inputPanel, BorderLayout.CENTER);
// 设置窗口属性
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null); // 窗口居中显示
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
try {
double num1 = Double.parseDouble(num1Field.getText());
double num2 = Double.parseDouble(num2Field.getText());
String operator = (String) operatorBox.getSelectedItem();
double result;
switch (operator) {
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
if (num2 != 0) {
result = num1 / num2;
} else {
JOptionPane.showMessageDialog(this, "错误:除数不能为零");
return;
}
break;
case "%":
if (num2 != 0) {
result = num1 % num2;
} else {
JOptionPane.showMessageDialog(this, "错误:除数不能为零");
return;
}
break;
default:
JOptionPane.showMessageDialog(this, "无效的操作符!");
return;
}
resultField.setText(String.format("%.2f", result));
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(this, "请输入有效的数字");
}
}
public static void main(String[] args) {
new Calculator();
}
}
Loading…
Cancel
Save