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(); } }