Write comment lines to this program that explain what the program is doing: impo
ID: 663950 • Letter: W
Question
Write comment lines to this program that explain what the program is doing:
import javax.swing.*;
import java.awt.event.*;
class Calc implements ActionListener
{
JFrame f;
JTextField t;
JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bdiv,bmul,bsub,badd,bdec,beq,bdel,bclr;
static double a=0,b=0,result=0;
static int operator=0;
Calc()
{
f=new JFrame("Calculator");
t=new JTextField();
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");
bdiv=new JButton("/");
bmul=new JButton("*");
bsub=new JButton("-");
badd=new JButton("+");
bdec=new JButton(".");
beq=new JButton("=");
bdel=new JButton("Delete");
bclr=new JButton("Clear");
t.setBounds(30,40,280,30);
b7.setBounds(40,100,50,40);
b8.setBounds(110,100,50,40);
b9.setBounds(180,100,50,40);
bdiv.setBounds(250,100,50,40);
b4.setBounds(40,170,50,40);
b5.setBounds(110,170,50,40);
b6.setBounds(180,170,50,40);
bmul.setBounds(250,170,50,40);
b1.setBounds(40,240,50,40);
b2.setBounds(110,240,50,40);
b3.setBounds(180,240,50,40);
bsub.setBounds(250,240,50,40);
bdec.setBounds(40,310,50,40);
b0.setBounds(110,310,50,40);
beq.setBounds(180,310,50,40);
badd.setBounds(250,310,50,40);
bdel.setBounds(60,380,100,40);
bclr.setBounds(180,380,100,40);
f.add(t);
f.add(b7);
f.add(b8);
f.add(b9);
f.add(bdiv);
f.add(b4);
f.add(b5);
f.add(b6);
f.add(bmul);
f.add(b1);
f.add(b2);
f.add(b3);
f.add(bsub);
f.add(bdec);
f.add(b0);
f.add(beq);
f.add(badd);
f.add(bdel);
f.add(bclr);
f.setLayout(null);
f.setVisible(true);
f.setSize(350,500);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setResizable(false);
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);
b0.addActionListener(this);
badd.addActionListener(this);
bdiv.addActionListener(this);
bmul.addActionListener(this);
bsub.addActionListener(this);
bdec.addActionListener(this);
beq.addActionListener(this);
bdel.addActionListener(this);
bclr.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b1)
t.setText(t.getText().concat("1"));
if(e.getSource()==b2)
t.setText(t.getText().concat("2"));
if(e.getSource()==b3)
t.setText(t.getText().concat("3"));
if(e.getSource()==b4)
t.setText(t.getText().concat("4"));
if(e.getSource()==b5)
t.setText(t.getText().concat("5"));
if(e.getSource()==b6)
t.setText(t.getText().concat("6"));
if(e.getSource()==b7)
t.setText(t.getText().concat("7"));
if(e.getSource()==b8)
t.setText(t.getText().concat("8"));
if(e.getSource()==b9)
t.setText(t.getText().concat("9"));
if(e.getSource()==b0)
t.setText(t.getText().concat("0"));
if(e.getSource()==bdec)
t.setText(t.getText().concat("."));
if(e.getSource()==badd)
{
a=Double.parseDouble(t.getText());
operator=1;
t.setText("");
}
if(e.getSource()==bsub)
{
a=Double.parseDouble(t.getText());
operator=2;
t.setText("");
}
if(e.getSource()==bmul)
{
a=Double.parseDouble(t.getText());
operator=3;
t.setText("");
}
if(e.getSource()==bdiv)
{
a=Double.parseDouble(t.getText());
operator=4;
t.setText("");
}
if(e.getSource()==beq)
{
b=Double.parseDouble(t.getText());
switch(operator)
{
case 1: result=a+b;
break;
case 2: result=a-b;
break;
case 3: result=a*b;
break;
case 4: result=a/b;
break;
default: result=0;
}
t.setText(""+result);
}
if(e.getSource()==bclr)
t.setText("");
if(e.getSource()==bdel)
{
String s=t.getText();
t.setText("");
for(int i=0;i<s.length()-1;i++)
t.setText(t.getText()+s.charAt(i));
}
}
public static void main(String...s)
{
new Calc();
}
}
Explanation / Answer
//header files //accessing objects from swing import javax.swing.*; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.*; //Declare an event handler class and specify that the class either implements // an ActionListener interface or extends a class that implements // an ActionListener interface class Calc implements ActionListener { // declaring variables JFrame f; JTextField t; JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bdiv,bmul,bsub,badd,bdec,beq,bdel,bclr; static double a=0,b=0,result=0; static int operator=0; // defining function of call() Calc() { // create frame with name calculator f=new JFrame("calculator"); // creating text field t=new JTextField(" ",0); // creating buttons 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"); bdiv=new JButton("/"); bmul=new JButton("*"); bsub=new JButton("-"); badd=new JButton("+"); bdec=new JButton("."); beq=new JButton("="); bdel=new JButton("delete"); bclr=new JButton("clear"); // setting the boundary //values of X co-ordinates,y co-ordinates, width, height t.setBounds(30,40,280,30); b7.setBounds(40,100,50,40); b8.setBounds(110,100,50,40); b9.setBounds(180,100,50,40); bdiv.setBounds(250,100,50,40); b4.setBounds(40,170,50,40); b5.setBounds(110,170,50,40); b6.setBounds(180,170,50,40); bmul.setBounds(250,170,50,40); b1.setBounds(40,240,50,40); b2.setBounds(110,240,50,40); b3.setBounds(180,240,50,40); bsub.setBounds(250,240,50,40); bdec.setBounds(40,310,50,40); b0.setBounds(110,310,50,40); beq.setBounds(180,310,50,40); badd.setBounds(250,310,50,40); bdel.setBounds(60,380,100,40); bclr.setBounds(180,380,100,40); //adding buttons with frames f.add(t); f.add(b7); f.add(b8); f.add(b9); f.add(bdiv); f.add(b4); f.add(b5); f.add(b6); f.add(bmul); f.add(b1); f.add(b2); f.add(b3); f.add(bsub); f.add(bdec); f.add(b0); f.add(beq); f.add(badd); f.add(bdel); f.add(bclr); //setting layout f.setLayout(null); // make it visible f.setVisible(true); // setting size of frame f.setSize(350,500); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // user cant resize the window f.setResizable(false); //We would like to handle the button-click event, so we add an action listener to the button b1 as below 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); b0.addActionListener(this); badd.addActionListener(this); bdiv.addActionListener(this); bmul.addActionListener(this); bsub.addActionListener(this); bdec.addActionListener(this); beq.addActionListener(this); bdel.addActionListener(this); bclr.addActionListener(this); } // implements the methods in listener interface public void actionPerformed(ActionEvent e) { if(e.getSource()==b1) t.setText(t.getText().concat("1")); if(e.getSource()==b2) t.setText(t.getText().concat("2")); if(e.getSource()==b3) t.setText(t.getText().concat("3")); //getSource() is specified by the EventObject class that ActionEvent is a child of //(via java.awt.AWTEvent). This gives you a reference to the object that the event //came from if(e.getSource()==b4) t.setText(t.getText().concat("4")); if(e.getSource()==b5) t.setText(t.getText().concat("5")); if(e.getSource()==b6) t.setText(t.getText().concat("6")); if(e.getSource()==b7) t.setText(t.getText().concat("7")); if(e.getSource()==b8) t.setText(t.getText().concat("8")); if(e.getSource()==b9) t.setText(t.getText().concat("9")); if(e.getSource()==b0) t.setText(t.getText().concat("0")); if(e.getSource()==bdec) t.setText(t.getText().concat(".")); if(e.getSource()==badd) { a=Double.parseDouble(t.getText()); operator=1; t.setText(""); } if(e.getSource()==bsub) { a=Double.parseDouble(t.getText()); operator=2; t.setText(""); } if(e.getSource()==bmul) { a=Double.parseDouble(t.getText()); operator=3; t.setText(""); } if(e.getSource()==bdiv) { a=Double.parseDouble(t.getText()); operator=4; t.setText(""); } if(e.getSource()==beq) { b=Double.parseDouble(t.getText()); switch(operator) { case 1: result=a+b; break; case 2: result=a-b; break; case 3: result=a*b; break; case 4: result=a/b; break; default: result=0; } t.setText(""+result); } if(e.getSource()==bclr) t.setText(""); if(e.getSource()==bdel) { String s=t.getText(); t.setText(""); for(int i=0;iRelated Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.