2010-03-18 11 views
16

मैं एक व्यवसाय स्विंग का उपयोग करने का परिचालन हिस्से का प्रबंधन करने के लिए एक सरल आवेदन विकासशील हूँ, लेकिन मैं जरूरत है कि जब आवेदन बाहर निकलता है, यह इस करता है:ऑनएक्सिट इवेंट?

updateZonas(); 
db.close(); 

लेकिन मैं यह कैसे कर सकते हैं?

उत्तर

33
Runtime.getRuntime().addShutdownHook(new Thread() 
{ 
    @Override 
    public void run() 
    { 
     updateZonas(); 
     db.close(); 
    } 
}); 

यह किसी भी जावा अनुप्रयोग (घुमाओ/AWT/कंसोल)

+4

यह बहुत कम स्तर है। – vemv

+1

@vemv यह ** ** ** निम्न स्तर क्यों है? निश्चित रूप से यदि आपको किसी भी शर्त के तहत बाहर निकलने की घटना को अवरुद्ध करने की आवश्यकता है तो आपको निम्न स्तर की हुक की आवश्यकता है? – MTCoster

7

अपने जेएफआरएएम में WindowListener जोड़ें। इसकी windowClosing विधि आपको जो भी कोड चाहिए, उसे कॉल करेगी, फिर System.exit(0) (या कुछ अन्य रिटर्न कोड)।

26

क्या आप जेएफआरएएम का उपयोग कर रहे हैं? इसलिए आप इस कोशिश कर सकते हैं यदि:

myframe.addWindowListener(new java.awt.event.WindowAdapter() { 
     public void windowClosing(WindowEvent winEvt) { 
      updateZonas(); 
      db.close(); 
      System.exit(0); 
     } 
    }); 
+4

भी डाल के लिए काम करता आज़माएं/कैच/अंत में मामला कुछ में updateZonas और dbclose कॉल के आसपास गलत है। आप उपयोगकर्ता को कुछ गलत होने और यह तय करने दे सकते हैं कि ऐप अभी भी बाहर निकलना चाहिए या नहीं। –

+0

'System.exit (0) है,' आवश्यक है? – Metatron

+0

नहीं, यह आवश्यक नहीं होना चाहिए। – Brain

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