user3566658
user3566658

Reputation: 15

How to implement the ActionListener to get the Exit Button to work

Here is my code, but the error shows that the implemented ActionListener is not correct. I also declared the buttons so how do I make the system exit? What did I do wrong? Thanks in advance

 import javax.swing.*;
    import java.awt.*;
    import java.awt.FlowLayout;


    public class MyFrame extends JFrame implements ActionListener {


    public MyFrame() {


            // set flow layout for the frame
            this.getContentPane().setLayout(new FlowLayout());



            JButton ExitBtn = new JButton();

            ExitBtn.setText("Exit");
            JButton Find = new JButton("Find");
            JButton Clear = new JButton("Clear");
            // add buttons to frame

            add(ExitBtn);

            add(Find);
            add(Clear);
        }

    public void actionPerformed(ActionEvent e){
    System.exit(0);
    ExitBtn.addActionListener(this);
    }

    public static void main(String[] args) {

    MyFrame mf = new MyFrame();
    mf.pack();
    mf.setVisible(true);
    mf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }
    }

Upvotes: 0

Views: 5700

Answers (2)

akhilless
akhilless

Reputation: 3209

I think you should move the ExitBtn.addActionListener(this) call to the constructor of MyFrame class so that it looks like this:

    JButton ExitBtn = new JButton();
    ExitBtn.setText("Exit");
    ExitBtn.addActionListener(this)

and actionPermormed method looks like this:

@Override
public void actionPerformed(ActionEvent e){
    System.exit(0);   
    }

Upvotes: 1

Exorcismus
Exorcismus

Reputation: 2482

onClick:

frame.dispatchEvent(new WindowEvent(frame, WindowEvent.WINDOW_CLOSING));

Upvotes: 1

Related Questions