2012-12-05 41 views
6

में विंडो बंद करने के लिए हैंडलर कैसे बनाएं, जब मैं अपनी विंडो (जावा स्विंग के साथ बनाई गई) बंद कर देता हूं तो मैं क्लीनअप करने के लिए एक फ़ंक्शन कॉल करने का प्रयास कर रहा हूं। मेरी प्रवर्तन कोड में मैं यह कर:जावा स्विंग

public class FormLogin extends JFrame{ 
    private void initComponents(){ 
     ... 
     setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

     addWindowListener(new java.awt.event.WindowAdapter() { 
      public void windowClosed(java.awt.event.WindowEvent evt){ 
       formLoginWindowClosed(evt); 
      } 
     }); 
     ... 
    } 
} 

लेकिन समारोह "formLoginWindowClosed" कहा जाता है कभी नहीं है जब मैं बाहर निकलें बटन दबाएं। मैंने java.awt.event.WindowAdapter के साथ श्रोता बनाने का भी प्रयास किया है, लेकिन यह काम नहीं करता है। विंडो बंद करने के लिए श्रोता को कैसे बनाना चाहिए? अग्रिम धन्यवाद।

+0

के संभावित डुप्लिकेट इस्तेमाल कर सकते हैं (http://stackoverflow.com/questions/8781108/how-to-capture-a-close [जावा जोरों पर एक करीबी घटना पर कब्जा करने के लिए कैसे] -वेन्ट-इन-जावा-स्विंग) – Suma

उत्तर

8

फ्रेम पर सेट से बाहर निकलने के लिए फ्रेम सेट के साथ, windowClosed कभी भी नहीं कहा जाएगा, क्योंकि ज्यादातर घटना को उठाए जाने से पहले सिस्टम पहले ही बाहर निकल चुका है।

इसके बजाय windowClosing का उपयोग करने का प्रयास करें।

वैकल्पिक रूप से, आप एक shut down hook

+1

धन्यवाद, मैंने setDefaultCloseOperation को DISPOSE_ON_CLOSE में बदल दिया और अब सही काम करता है। – Joel

+0

@ जोएल अगर आपकी समस्या हल हो गई है तो कृपया पोस्ट के बगल में खाली चेक मार्क टिकने के बारे में सोचें। +1 पागल अच्छी चीजें –