// The Calculator example using the swing package import java.awt.*; import java.awt.event.*; import javax.swing.*; class Calculator extends JPanel implements ActionListener { float number1, number2, result; JLabel label1, label2, label3, title; JTextField input1, input2, input3; String operation; // Constructor for the Calculator class public Calculator () { setLayout (new FlowLayout()); title = new JLabel ("Calculator program"); label1 = new JLabel ("Enter the first number: "); label2 = new JLabel ("Enter the second number: "); label3 = new JLabel ("Enter the operation (+, -, *, or /): "); input1 = new JTextField (8); input2 = new JTextField (8); input3 = new JTextField (1); add (title); add (label1); add (input1); add (label2); add (input2); add (label3); add (input3); input3.addActionListener(this); number1 = 0; number2 = 0; operation = ""; setPreferredSize (new Dimension(200,400)); } public void paintComponent (Graphics g) { super.paintComponent (g); // must be present for the repaint method to work properly if (operation.equals ("")); else if ((operation.equals ("/")) & (number2 == 0)) g.drawString ("Division by zero is not permitted", 10, 250); else g.drawString (number1 + " " + operation + " " + number2 + " = " + result, 30, 250); } public void actionPerformed (ActionEvent e) { number1 = Float.parseFloat(input1.getText()); number2 = Float.parseFloat(input2.getText()); operation = input3.getText(); if (operation.equals ("+")) result = number1 + number2; else if (operation.equals ("-")) result = number1 - number2; else if (operation.equals ("*")) result = number1 * number2; else { if (number2 == 0); else result = number1 / number2; } repaint(); } } class CalculatorGUI2 { public static void main (String[] args) { JFrame mywindow = new JFrame ("Calculator example"); mywindow.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); mywindow.getContentPane().add (new Calculator ()); mywindow.pack(); mywindow.setVisible(true); } }