Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Having alot of trouble with using java graphics jframe and action listeners. Thi

ID: 3829380 • Letter: H

Question

Having alot of trouble with using java graphics jframe and action listeners.

This calculator must look like the one above and use jframe, buttons , actionlistener ect. Use flowlayout and borderlayout.

only need to do + - * /

The basic principle is

1: Get a number from user

2: check to see if a opporator is selected. If so clear the text box and get the next number.

3: Then execute the opporation if the equal sign is selected or another opporator is selected and display the results .

4: if opporator is already selected display messege.

My calculator 78.0 clear Can't choose an operator again! Create a calculator like the above visual. The clear button resets the calculator. The label will display a warning if the user picks an operator right after an operator has already been picked. The calculator should be fully functioning.

Explanation / Answer

//Calc.java

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");
  
b7.setBounds(40,100,50,40);
b8.setBounds(110,100,50,40);
b9.setBounds(180,100,50,40);
badd.setBounds(250,100,50,40);
  
b4.setBounds(40,170,50,40);
b5.setBounds(110,170,50,40);
b6.setBounds(180,170,50,40);
bsub.setBounds(250,170,50,40);
  
b1.setBounds(40,240,50,40);
b2.setBounds(110,240,50,40);
b3.setBounds(180,240,50,40);
bmul.setBounds(250,240,50,40);
  
bdec.setBounds(40,310,50,40);
b0.setBounds(110,310,50,40);
beq.setBounds(180,310,50,40);
bdiv.setBounds(250,310,50,40);
  
t.setBounds(30,380,200,30);
bclr.setBounds(240,380,80,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();
}
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote