Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

I'm trying to make a calculator for Java and this is what I have import java.awt.GridLayout; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class Calculator{

I'm trying to make a calculator for Java and this is what I have

import java.awt.GridLayout; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class Calculator{ JFrame frame= new JFrame("Basic Calculator"); JPanel panel= new JPanel (new GridLayout(4,4,5,5)); JTextField textField=new JTextField(""); JButton button1= new JButton("1"); JButton button2= new JButton("2"); JButton button3= new JButton("3"); JButton button4= new JButton("4"); JButton button5= new JButton("5"); JButton button6= new JButton("6"); JButton button7= new JButton("7"); JButton button8= new JButton("8"); JButton button9= new JButton("9"); JButton button10=new JButton("0"); JButton button11= new JButton("+"); JButton button12= new JButton("-"); JButton button13= new JButton("*"); JButton button14= new JButton("/"); JButton button15= new JButton("="); JButton button16= new JButton("C"); static double num1=0; static double num2=0; static double result=0; static int operator=0;

public static void main(String[] args){ Calculator calc= new Calculator(); }

public Calculator(){ Gui(); }

public void Gui(){ frame.setVisible(true); frame.setSize(600, 500); frame.setResizable(false); button1.addActionListener(new ButtonListener1()); button2.addActionListener(new ButtonListener2()); button3.addActionListener(new ButtonListener3()); button4.addActionListener(new ButtonListener4()); button5.addActionListener(new ButtonListener5()); button6.addActionListener(new ButtonListener6()); button7.addActionListener(new ButtonListener7()); button8.addActionListener(new ButtonListener8()); button9.addActionListener(new ButtonListener9()); button10.addActionListener(new ButtonListener10()); button11.addActionListener(new ButtonListener11()); button12.addActionListener(new ButtonListener12()); button13.addActionListener(new ButtonListener13()); button14.addActionListener(new ButtonListener14()); button15.addActionListener(new ButtonListener15()); button16.addActionListener(new ButtonListener16()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(panel); panel.add(button1); panel.add(button2); panel.add(button3); panel.add(button4); panel.add(button5); panel.add(button6); panel.add(button7); panel.add(button8); panel.add(button9); panel.add(button10); panel.add(button11); panel.add(button12); panel.add(button13); panel.add(button14); panel.add(button15); panel.add(button16); panel.add(textField);

} public class ButtonListener1 implements ActionListener{ public void actionPerformed(ActionEvent a){ if(a.getSource()==button1){ textField.setText(textField.getText().concat("1")); num1=1; num2=1; } } } public class ButtonListener2 implements ActionListener{ public void actionPerformed(ActionEvent a){ if(a.getSource()==button2){ textField.setText(textField.getText().concat("2")); num1=2; num2=2; } } } public class ButtonListener3 implements ActionListener{ public void actionPerformed(ActionEvent a){ if(a.getSource()==button3){ textField.setText(textField.getText().concat("3")); num1=3; num2=3; }

} } public class ButtonListener4 implements ActionListener{ public void actionPerformed(ActionEvent a) { if (a.getSource()==button4){ textField.setText(textField.getText().concat("4")); num1=4; num2=4; } } } public class ButtonListener5 implements ActionListener{ public void actionPerformed(ActionEvent a){ if(a.getSource()==button5){ textField.setText(textField.getText().concat("5")); num1=5; num2=5;

} } } public class ButtonListener6 implements ActionListener{ public void actionPerformed(ActionEvent a ){ if(a.getSource()==button6){ textField.setText(textField.getText().concat("6")); num1=6; num2=6; } } } public class ButtonListener7 implements ActionListener{ public void actionPerformed(ActionEvent a){ if(a.getSource()==button7){ textField.setText(textField.getText().concat("7")); num1=7; num2=7; } } } public class ButtonListener8 implements ActionListener{ public void actionPerformed(ActionEvent a){ if(a.getSource()==button8){ textField.setText(textField.getText().concat("8")); num1=8; num2=8; } } } public class ButtonListener9 implements ActionListener{ public void actionPerformed(ActionEvent a){ if(a.getSource()==button9){ textField.setText(textField.getText().concat("9")); num1=9; num2=9; } } } public class ButtonListener10 implements ActionListener{ public void actionPerformed(ActionEvent a){ if(a.getSource()==button10){ textField.setText(textField.getText().concat("0")); num1=0; num2=0; } } } public class ButtonListener11 implements ActionListener{ public void actionPerformed(ActionEvent a){ if(a.getSource()==button11){ num1=Double.parseDouble(textField.getText()); num2=Double.parseDouble(textField.getText()); operator=1; textField.setText(textField.getText().concat("+")); } } } public class ButtonListener12 implements ActionListener{ public void actionPerformed(ActionEvent a){ if (a.getSource()==button12){ num1=Double.parseDouble(textField.getText()); num2=Double.parseDouble(textField.getText()); operator=2; textField.setText(textField.getText().concat("-")); } } } public class ButtonListener13 implements ActionListener{ public void actionPerformed(ActionEvent a){ if (a.getSource()==button13){ num1=Double.parseDouble(textField.getText()); num2=Double.parseDouble(textField.getText()); operator=3; textField.setText(textField.getText().concat("*")); } } } public class ButtonListener14 implements ActionListener{ public void actionPerformed(ActionEvent a ){ if (a.getSource()==button14){ num1=Double.parseDouble(textField.getText()); num2=Double.parseDouble(textField.getText()); operator=4; textField.setText(textField.getText().concat("/")); } } } public class ButtonListener15 implements ActionListener{ public void actionPerformed(ActionEvent a){ if (a.getSource()==button15){ if(operator==1){ String[]numadd=textField.getText().split("+"); num1=Double.parseDouble(numadd[0]); num2=Double.parseDouble(numadd[1]); result=(num1 + num2); textField.setText(textField.getText()+("=")+result); } if(operator==2){ String[]numsubtract=textField.getText().split("-"); num1=Double.parseDouble(numsubtract[0]); num2=Double.parseDouble(numsubtract[1]); result=(num1-num2); textField.setText(textField.getText()+("=")+result); } if(operator==3){ String[]nummultiply=textField.getText().split("*"); num1=Double.parseDouble(nummultiply[0]); num2=Double.parseDouble(nummultiply[1]); result=(num1*num2); textField.setText(textField.getText()+("=")+result); } if(operator==4){ String[]numdivide=textField.getText().split("/"); num1=Double.parseDouble(numdivide[0]); num2=Double.parseDouble(numdivide[1]); result=(num1/num2); textField.setText(textField.getText()+("=")+result); } } } } public class ButtonListener16 implements ActionListener{ public void actionPerformed(ActionEvent a){ if (a.getSource()==button16){ textField.setText(""); } } } }

For the most part, it works fine but an issue I have is that the ButtonListener15 does not print out the results of multiplied and added numbers when I have the same method for each operator. What am I doing wrong?

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

More Books

Students also viewed these Databases questions