Event Driven Programming – Calculator /* Design a calculator using event-driven programming paradigm of Java */ // Event Driven Programming // Swing components // calculator import javax.swing.*; import java.awt.*; import java.awt.event.*; class calculator implements ActionListener { double n1, n2, result; JButton b1, b2, b3, b4, b5, b6, b7, b8, b9, b0; JButton add,sub,mul,div,eq,dot; JTextField tf; JFrame jf; JPanel p1, p2; String s1=””; double Num1=0; double Num2=0; double res=0; String opn=””; calculator() { jf = new JFrame(); jf.setSize(250,200); jf.setTitle(“Calculator”); tf = new JTextField(“0”); tf.setEditable(false); tf.setHorizontalAlignment(JTextField.RIGHT); jf.add(tf, BorderLayout.NORTH); GridLayout GL = new GridLayout(4,4); p2 = new JPanel(); p2.setLayout(GL); b1 = new JButton(“1”); b2 = new JButton(“2”); b3 = new JButton(“3”); b4 = new JButton(“4”); b5 = new JButton(“5”); b6 = new JButton(“6”); b7 = new JButton(“7”); b8 = new JButton(“8”); b9 = new JButton(“9”); b0 = new JButton(“0”); add = new JButton(“+”); sub = new JButton(“-“); mul = new JButton(“*”); div = new JButton(“/”); eq = new JButton(“=”); dot = new JButton(“.”); p2.add(b9); p2.add(b8); p2.add(b7); p2.add(div); p2.add(b6); p2.add(b5); p2.add(b4); p2.add(mul); p2.add(b3); p2.add(b2); p2.add(b1); p2.add(sub); p2.add(b0); p2.add(dot); p2.add(eq); p2.add(add); jf.add(p2, BorderLayout.CENTER); b0.addActionListener(this); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); b5.addActionListener(this); b6.addActionListener(this); b7.addActionListener(this); b8.addActionListener(this); b9.addActionListener(this); add.addActionListener(this); sub.addActionListener(this); mul.addActionListener(this); div.addActionListener(this); eq.addActionListener(this); dot.addActionListener(this); jf.setVisible(true); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent ae) { String str = ae.getActionCommand(); if((str.equals(“+”))||(str.equals(“-“)) || (str.equals(“*”))|| (str.equals(“/”))) { Num1 = Double.parseDouble(s1); s1=””; tf.setText(“”); opn=str; } else if(str.equals(“=”)) { Num2 = Double.parseDouble(s1); s1=””; char op = opn.charAt(0); switch(op) { case ‘+’: res = Num1+Num2; break; case ‘-‘: res = Num1-Num2; break; case ‘*’: res = Num1*Num2; break; case ‘/’: res = Num1/Num2; break; } tf.setText(String.valueOf(res)); } else { s1=s1+str; tf.setText(s1); } } public static void main(String as[]) { new calculator(); } } Output: