close java frame using code

17,070

Solution 1

You need this:

yourFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

You can add that line in the constructor(Dont forget it).

Solution 2

This will programmatically trigger the window closing event:

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

If you want to close the frame you need to call:

topFrame.dispose();

Solution 3

How about invoking dispose() method?

Solution 4

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

class CloseFrame {

    public static void main(String[] args) {

        Runnable r = new Runnable() {

            public void run() {
                JButton close = new JButton("Close me programmatically");
                final JFrame f = new JFrame("Close Me");
                f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                f.setContentPane( close );
                close.addActionListener( new ActionListener(){
                    public void actionPerformed(ActionEvent ae) {
                        // make the app. end (programatically)
                        f.dispose();
                    }
                } );
                f.pack();
                f.setLocationByPlatform(true);
                f.setVisible(true);
            }
        };

        SwingUtilities.invokeLater(r);
    }
}
Share:
17,070
user673218
Author by

user673218

Updated on June 19, 2022

Comments

  • user673218
    user673218 almost 2 years

    Possible Duplicate:
    How to programmatically close a JFrame

    I am developing a java GUI using JFrame. I want to close the GUI frame and dispose it off through code. I have implemented :

    topFrame.addWindowListener(new WindowListener()
            {
                public void windowClosing(WindowEvent e)
                {
                    emsClient.close();
                }
                public void windowOpened(WindowEvent e) {
                }
                public void windowClosed(WindowEvent e) {
                }
                public void windowIconified(WindowEvent e) {
                }
                public void windowDeiconified(WindowEvent e) {
                }
                public void windowActivated(WindowEvent e) {
                }
                public void windowDeactivated(WindowEvent e) {
                }
            });`
    

    How can I invoke the windowClosing event?? Or is there some other way?

  • WhiteFang34
    WhiteFang34 about 13 years
    Just tried, dispose() doesn't trigger a window closing event. It does close the window though.
  • Lukasz
    Lukasz about 13 years
    Well, I think the OP wants to close it programmatically.
  • javing
    javing about 13 years
    If so he just need to catch the event for closing and call dispose(). But i don't understand, why not just adding that method in the constructor. Some IDEs add it even automatically when creating a JFrame.
  • trashgod
    trashgod about 13 years
    See also this related Q&A regarding JDialog.
  • trashgod
    trashgod about 13 years
    Excellent sscce, but it won't trigger the questioner's WindowListener; I'm guessing that was was the goal, based on the accepted answer.
  • Andrew Thompson
    Andrew Thompson about 13 years
    Just to go off-topic, thanks for adding the Mac. screen shot to the Nested Layout Example. :)