2011-04-17 17 views
5

मैं स्विंग का उपयोग कर एक छोटा जावा एप्लिकेशन लिख रहा हूं। एप्लिकेशन में नेटवर्किंग घटक भी है।जावा एप्लिकेशन से बाहर निकलने से पहले सफाई

मैं बाहर निकलने से पहले कुछ कोड चलाने के लिए चाहता हूं (बंद चैनल, चाबियाँ, इत्यादि)। क्या ऐसा करने का कोई तरीका है, मेरे इंटरफ़ेस में एक्जिट बटन जोड़ने के बिना, जिसमें मेरा क्लीनअप करना है, फिर System.exit करें()?

उत्तर

5

here दिखाया गया है कि आप windowClosing() में जो भी चाहते हैं उसे करने में सक्षम होना चाहिए।

8

आप JVM बंद होने पर चलाने के लिए कोई फ़ंक्शन जोड़ने के लिए Runtime#addShutdownHook फ़ंक्शन का उपयोग कर सकते हैं।

+0

आईएमओ यह सबसे अच्छा जवाब है ... विंडो क्लोजिंग() को कॉल नहीं किया जाएगा यदि आपका एप्लिकेशन विंडो बंद पर DISPOSE के बजाय EXIT पर सेट है। यह सभी मामलों में बुलाया जाने की गारंटी नहीं है, और इसलिए आपके संसाधनों की गारंटी के लिए उतना प्रभावी नहीं होगा। – teh1

1

'बंद कुंजी': चयनकिज़? आपको उन लोगों के बारे में कुछ भी करने की ज़रूरत नहीं है। चैनल को बंद करना अपने सभी चयनकेस को स्वचालित रूप से रद्द कर देता है। और जब तक आपके पास लंबित डेटा न हो, आपको फ्लश करने की आवश्यकता है, आपको वास्तव में चैनल को बंद करने की आवश्यकता नहीं है, ओएस आपके लिए ऐसा करेगा।

+0

मुझे लगता है कि मेरे पास कुछ लंबित डेटा या कुछ था, क्योंकि मुझे एप्लिकेशन के कई रनों पर कुछ अजीब व्यवहार मिलेगा.अब मैं उचित सफाई करता हूं, ऐसा लगता है कि यह सामान्य हो गया है। – adivasile

संबंधित मुद्दे