commit 281a2beea6ca5bc729814e0563fe23ca951241c8 Author: zyn <3227658200@qq.com> Date: Thu Oct 10 17:38:56 2024 +0800 first diff --git a/Calculator.java b/Calculator.java new file mode 100644 index 0000000..99edac8 --- /dev/null +++ b/Calculator.java @@ -0,0 +1,120 @@ +package java6324.lesson06; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +public class Calculator extends JFrame { + private JTextField input1, input2, result; + private JButton addButton, subtractButton, multiplyButton, divideButton, modButton; + private JPanel panel; + + public Calculator() { + setTitle("Simple Calculator"); + setSize(300, 200); + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + setLayout(new GridLayout(5, 4, 5, 5)); + panel = new JPanel(); + panel.setLayout(new GridLayout(5, 4, 5, 5)); + + input1 = new JTextField(5); + input2 = new JTextField(5); + result = new JTextField(5); + result.setEditable(false); + + addButton = new JButton("+"); + subtractButton = new JButton("-"); + multiplyButton = new JButton("*"); + divideButton = new JButton("/"); + modButton = new JButton("%"); + + addButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + calculate(1); + } + }); + + subtractButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + calculate(2); + } + }); + + multiplyButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + calculate(3); + } + }); + + divideButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + calculate(4); + } + }); + + modButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + calculate(5); + } + }); + + panel.add(new JLabel("Input 1:")); + panel.add(input1); + panel.add(new JLabel("Input 2:")); + panel.add(input2); + panel.add(addButton); + panel.add(subtractButton); + panel.add(multiplyButton); + panel.add(divideButton); + panel.add(modButton); + panel.add(new JLabel()); + panel.add(result); + + add(panel); + setVisible(true); + } + + private void calculate(int operation) { + try { + double num1 = Double.parseDouble(input1.getText()); + double num2 = Double.parseDouble(input2.getText()); + double res = 0; + + switch (operation) { + case 1: + res = num1 + num2; + break; + case 2: + res = num1 - num2; + break; + case 3: + res = num1 * num2; + break; + case 4: + if (num2 != 0) { + res = num1 / num2; + } else { + result.setText("Error"); + return; + } + break; + case 5: + if (num2 != 0) { + res = num1 % num2; + } else { + result.setText("Error"); + return; + } + break; + } + result.setText(String.valueOf(res)); + } catch (NumberFormatException e) { + result.setText("Invalid Input"); + } + } + + public static void main(String[] args) { + new Calculator(); + } +}