Question: Can anyone fixing my code please? I try to math +,-,*,/ in Java GUI without pressing the = button. For example: when I press number

Can anyone fixing my code please?

I try to math +,-,*,/ in Java GUI without pressing the "=" button.

For example: when I press number "1" button (the text box had the number 1 )

then I press "+" button ( the "+" unseen in the text field),

then I press "2" ( now the "2" in the text box )

after that I press "+" [in the text field will have number 3 ->>( 1+2 =3) without using the "=" button].

Now I press "+ " , press "3" and then press "=" the total is 6.

I wanted do the same -,*,/ how can I do that? Thank you

Here is my code:

import java.awt.event.ActionEvent;  import java.awt.event.ActionListener;    import javax.swing.JButton;  import javax.swing.JFrame;    import javax.swing.JPanel;  import javax.swing.JTextField;    public class Main extends JFrame implements ActionListener {    // Instance variable  static JTextField resultTextField = new JTextField("0", 16);    // main function  public static void main(String[] args) {    // Create a frame  JFrame mainFrame = new JFrame("THI's Calculator");    // Instance object  Main calculator = new Main();    // Create a panel  JPanel panel = new JPanel();    // Create number buttons    JButton number0Button = new JButton("0");    JButton number1Button = new JButton("1");    JButton number2Button = new JButton("2");    JButton number3Button = new JButton("3");    JButton number4Button = new JButton("4");    JButton number5Button = new JButton("5");    JButton number6Button = new JButton("6");    JButton number7Button = new JButton("7");    JButton number8Button = new JButton("8");    JButton number9Button = new JButton("9");    // Create operator buttons    JButton clearButton = new JButton("C");    JButton addButton = new JButton("+");    JButton subtractButton = new JButton("-");    JButton multiplyButton = new JButton("*");    JButton divideButton = new JButton("/");    // equal button  JButton solveButton = new JButton("=");    // Add the instance in addActionListener to call the actionPerformed method    number0Button.addActionListener(calculator);    number1Button.addActionListener(calculator);    number2Button.addActionListener(calculator);    number3Button.addActionListener(calculator);    number4Button.addActionListener(calculator);    number5Button.addActionListener(calculator);    number6Button.addActionListener(calculator);    number7Button.addActionListener(calculator);    number8Button.addActionListener(calculator);    number9Button.addActionListener(calculator);    clearButton.addActionListener(calculator);    addButton.addActionListener(calculator);    subtractButton.addActionListener(calculator);    multiplyButton.addActionListener(calculator);    divideButton.addActionListener(calculator);    solveButton.addActionListener(calculator);    // Add elements to the panel    panel.add(resultTextField);  panel.add(clearButton);  panel.add(number0Button);  panel.add(number1Button);  panel.add(number2Button);  panel.add(number3Button);  panel.add(number4Button);  panel.add(number5Button);  panel.add(number6Button);  panel.add(number7Button);  panel.add(number8Button);  panel.add(number9Button);  panel.add(addButton);  panel.add(subtractButton);  panel.add(multiplyButton);  panel.add(divideButton);  panel.add(solveButton);    // Add the panel to the frame, set the frame size, visibility and what to do  // when closed    mainFrame.add(panel);  mainFrame.setSize(280, 310);  mainFrame.setVisible(true);  mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    }// ending of the main class    public void actionPerformed(ActionEvent e) {    resultTextField.setText("");    String command = e.getActionCommand();    if (command.charAt(0) == 'C') {  resultTextField.setText("");  } else if (command.charAt(0) == '=') {  resultTextField.setText(calculate(resultTextField.getText()));  } else {  resultTextField.setText(resultTextField.getText() + command);  }    }    public static String calculate(String expression) {    char[] arr = expression.toCharArray();    String num = resultTextField.getText();  String operator = "";    double result = 0;    for (int i = 0; i < arr.length; i++) {  if (arr[i] >= '0' && arr[i] <= '9' || arr[i] == '.') {  if (operator.isEmpty()) {  num += arr[i];  } else {  num += arr[i];  }  }  if (arr[i] == '+' || arr[i] == '-' || arr[i] == '/' || arr[i] == '*') {    operator += arr[i];  }    }    if (operator.equals("+"))  result = (Double.parseDouble(num) + Double.parseDouble(num));  else if (operator.equals("-"))  result = (Double.parseDouble(num) - Double.parseDouble(num));  else if (operator.equals("/"))  result = (Double.parseDouble(num) / Double.parseDouble(num));    else  result = (Double.parseDouble(num) * Double.parseDouble(num));  return num + operator + num + "=" + result;  }  }    // Ending of the Calculator Class

NOTE: I wanted my code is working just like when you are using a calculator app on IPHONE.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!