निम्न प्रोग्राम में कोड शामिल है जो स्पष्ट रूप से System.exit () को बुलाए बिना बाहरी थ्रेड्स की कमी वाले प्रोग्राम को समाप्त करेगा। थ्रेड्स / श्रोताओं / टाइमर / आदि का उपयोग करते हुए अनुप्रयोगों के लिए इस उदाहरण को लागू करने के लिए, एक को केवल सफाई कोड डालने का अनुरोध करना चाहिए (और, यदि लागू हो, प्रतीक्षा) WindowEvent से पहले मैन्युअल रूप से कार्रवाई शुरू होने से पहले उनकी समाप्ति की कार्रवाई की गई है ()।
उन लोगों के लिए जो कोड / पेस्ट कोड को चलाने में सक्षम हैं जैसा कि दिखाया गया है, थोड़ा-सा बदसूरत लेकिन अन्यथा अप्रासंगिक मुख्य विधि अंत में शामिल है।
public class CloseExample extends JFrame implements ActionListener {
private JButton turnOffButton;
private void addStuff() {
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
turnOffButton = new JButton("Exit");
turnOffButton.addActionListener(this);
this.add(turnOffButton);
}
public void actionPerformed(ActionEvent quitEvent) {
/* Iterate through and close all timers, threads, etc here */
this.processWindowEvent(
new WindowEvent(
this, WindowEvent.WINDOW_CLOSING));
}
public CloseExample() {
super("Close Me!");
addStuff();
}
public static void main(String[] args) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
CloseExample cTW = new CloseExample();
cTW.setSize(200, 100);
cTW.setLocation(300,300);
cTW.setVisible(true);
}
});
}
}