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);
}
}
Author by
user673218
Updated on June 19, 2022Comments
-
user673218 almost 2 years
Possible Duplicate:
How to programmatically close a JFrameI 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 about 13 yearsJust tried,
dispose()
doesn't trigger a window closing event. It does close the window though. -
Lukasz about 13 yearsWell, I think the OP wants to close it programmatically.
-
javing about 13 yearsIf 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 about 13 yearsSee also this related Q&A regarding
JDialog
. -
trashgod about 13 yearsExcellent 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 about 13 yearsJust to go off-topic, thanks for adding the Mac. screen shot to the Nested Layout Example. :)