diff --git a/src/compute/SimpleCalculator.java b/src/compute/SimpleCalculator.java new file mode 100644 index 0000000..b1e2456 --- /dev/null +++ b/src/compute/SimpleCalculator.java @@ -0,0 +1,127 @@ +package compute; +import javax.swing.*; +import java.awt.*; + +public class SimpleCalculator { + + private JFrame frame; + private JTextField inputField; + private double num1; + private double num2; + private String operator; + + public SimpleCalculator() { + frame = new JFrame("简单计算器"); + inputField = new JTextField(); + inputField.setEditable(false); + + // 创建按钮 + JButton btn1 = new JButton("1"); + JButton btn2 = new JButton("2"); + JButton btn3 = new JButton("3"); + JButton btn4 = new JButton("4"); + JButton btn5 = new JButton("5"); + JButton btn6 = new JButton("6"); + JButton btn7 = new JButton("7"); + JButton btn8 = new JButton("8"); + JButton btn9 = new JButton("9"); + JButton btn0 = new JButton("0"); + JButton btnAdd = new JButton("+"); + JButton btnSubtract = new JButton("-"); + JButton btnMultiply = new JButton("*"); + JButton btnDivide = new JButton("/"); + JButton btnEqual = new JButton("="); + JButton btnClear = new JButton("C"); + + // 设置布局 + JPanel panel = new JPanel(); + panel.setLayout(new GridLayout(4, 4)); + panel.add(btn7); + panel.add(btn8); + panel.add(btn9); + panel.add(btnDivide); + panel.add(btn4); + panel.add(btn5); + panel.add(btn6); + panel.add(btnMultiply); + panel.add(btn1); + panel.add(btn2); + panel.add(btn3); + panel.add(btnSubtract); + panel.add(btn0); + panel.add(btnEqual); + panel.add(btnClear); + panel.add(btnAdd); + + // 添加事件监听器 + btn1.addActionListener(e -> appendToInputField("1")); + btn2.addActionListener(e -> appendToInputField("2")); + btn3.addActionListener(e -> appendToInputField("3")); + btn4.addActionListener(e -> appendToInputField("4")); + btn5.addActionListener(e -> appendToInputField("5")); + btn6.addActionListener(e -> appendToInputField("6")); + btn7.addActionListener(e -> appendToInputField("7")); + btn8.addActionListener(e -> appendToInputField("8")); + btn9.addActionListener(e -> appendToInputField("9")); + btn0.addActionListener(e -> appendToInputField("0")); + + btnAdd.addActionListener(e -> setOperator("+")); + btnSubtract.addActionListener(e -> setOperator("-")); + btnMultiply.addActionListener(e -> setOperator("*")); + btnDivide.addActionListener(e -> setOperator("/")); + + btnEqual.addActionListener(e -> calculateResult()); + btnClear.addActionListener(e -> clearInput()); + + // 设置窗体 + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.setSize(400, 400); + frame.add(inputField, BorderLayout.NORTH); + frame.add(panel); + frame.setVisible(true); + } + + private void appendToInputField(String value) { + inputField.setText(inputField.getText() + value); + } + + private void setOperator(String op) { + num1 = Double.parseDouble(inputField.getText()); + operator = op; + inputField.setText(""); + } + + private void calculateResult() { + num2 = Double.parseDouble(inputField.getText()); + double result = 0; + + 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(frame, "错误:除数不能为零。"); + return; + } + break; + } + inputField.setText(String.valueOf(result)); + } + + private void clearInput() { + inputField.setText(""); + } + + public static void main(String[] args) { + SwingUtilities.invokeLater(SimpleCalculator::new); + } +} diff --git a/src/compute/javaCompute.java b/src/compute/javaCompute.java deleted file mode 100644 index d88c127..0000000 --- a/src/compute/javaCompute.java +++ /dev/null @@ -1,13 +0,0 @@ -package compute; - -/** - * ClassName:javaCompute - * Package: compute - * Description: - * Author Pjj - * - * @Create 2024/10/10 16:21 - * @Version 1.0 - */ -public class javaCompute { -}