How do I add a quit button to this program? How about "clear"?

10,669

First declare the buttons and initialize them:

JButton exitButton = new JButton("Exit");
JButton clearButton = new JButton("Clear");

Then, make sure the butPanel has a layout and the panel is added to the content pane:

butPanel.setLayout(new FlowLayout());
getContentPane().add(butPanel);

Then add the action listeners on the new buttons:

exitButton.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent e) {
    System.exit(0);
  }
});
clearButton.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent e) {
    // TODO: clear the stuff here
  }
});
Share:
10,669
javanoob
Author by

javanoob

Updated on June 04, 2022

Comments

  • javanoob
    javanoob almost 2 years

    I need to add a button that "clears the calculator" and also one that quits the program on the butPanel. It also needs to be very basic Java code because I am a beginner and have an awful comp.sci. teacher. I have a sample of code that has the quit button, but I am unsure of how to put it into MY program. I've tried so much. Also if there is a better way to "error-check" that would be much appreciated.

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    public class Calculator2 extends JFrame implements ActionListener
    {
        JLabel heading = new JLabel ("2. Calculator");
        JLabel intro1 = new JLabel ("This program stimulates a four-function calculator.");
        JLabel intro2 = new JLabel ("It takes an operator and a number. It can add, subtract,");
        JLabel intro3 = new JLabel (" multiply and divide. Enter in the format eg. '+35'. ");
        JLabel inLabel = new JLabel ("        Operation: ");
        JLabel outLabel = new JLabel ("       Total:           ");
        JTextField inOper = new JTextField (7);
        JTextField outTota = new JTextField (7); // intro
    
    //panels
    JPanel titlePanel = new JPanel ();
    JPanel intro1Panel = new JPanel ();
    JPanel intro2Panel = new JPanel ();
    JPanel intro3Panel = new JPanel ();
    JPanel operPanel = new JPanel ();
    JPanel totaPanel = new JPanel ();
    JPanel butPanel = new JPanel ();
    
    String operTemp;
    String totaTemp;
    
    public Calculator2 ()
    {
        setTitle ("C - 2.");
        inOper.addActionListener (this);
        outTota.setEditable (false);
        getContentPane ().setLayout (new FlowLayout ());
    
        titlePanel.add (heading);
        intro1Panel.add (intro1);
        intro2Panel.add (intro2);
        intro3Panel.add (intro3);
        operPanel.add (inLabel);
        operPanel.add (inOper);
        totaPanel.add (outLabel);
        totaPanel.add (outTota); //adds components to panels
    
        getContentPane ().add (titlePanel);
        getContentPane ().add (intro1Panel);
        getContentPane ().add (intro2Panel);
        getContentPane ().add (intro3Panel);
        getContentPane ().add (operPanel);
        getContentPane ().add (totaPanel); //Adds panels to Frame
    
        setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
    }
    
    
    public static int isInteger (String input)
    {
        try
        {
            Integer.parseInt (input);
            return Integer.parseInt (input);
        }
        catch (NumberFormatException nfe)
        {
            return 0;
        }
    } //isInteger method
    
    
    // The application
    public String calculate (String operation, String newtotal)
    {
        int total = isInteger (newtotal);
        String totalS;
        char operator;
        int number = 0;
        operator = operation.charAt (0);
    
        if (operator == '+')
        {
            number = isInteger (operation.substring (1));
            total = total + number;
            totalS = Integer.toString (total);
        }
    
    
        else if (operator == '-')
        {
            number = isInteger (operation.substring (1));
            total = total - number;
            totalS = Integer.toString (total);
        }
    
    
        else if (operator == '*')
        {
            number = isInteger (operation.substring (1));
            total = total * number;
            totalS = Integer.toString (total);
        }
    
    
        else if (operator == '/')
        {
            number = isInteger (operation.substring (1));
            total = total / number;
            totalS = Integer.toString (total);
        }
        else
        {
            totalS = ("ERROR");
        }
    
        if (number == 0)
        {
            totalS = ("ERROR");
        }
        return totalS;
    } // calculate method
    
    
    public void actionPerformed (ActionEvent evt)
    {
        String userIn = inOper.getText ();
        String totalIn = outTota.getText ();
        try
        {
            totaTemp = calculate (userIn, totalIn);
            outTota.setText (totaTemp + "");
        }
        catch (Exception ex)
        {
            outTota.setText ("ERROR");
        }
        repaint ();
    }
    
    
    public static void main (String[] args)
    {
        Calculator2 calc = new Calculator2 ();
        calc.setSize (350, 350);
        calc.setResizable (false);
        calc.setVisible (true);
    }
    }