Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Java

जावा में स्विंगवर्कर वर्ग का क्या महत्व है?


एक स्विंगवर्कर वर्ग हमें एक एसिंक्रोनस . करने में सक्षम बनाता है कार्य वर्कर थ्रेड में (जैसे कि लंबे समय तक चलने वाला कार्य) फिर इवेंट डिस्पैच थ्रेड (EDT से स्विंग घटकों को अपडेट करें। ) कार्य परिणामों के आधार पर। इसे Java 1.6 संस्करण . में पेश किया गया था

स्विंगवर्कर वर्ग

  • java.swing.SwingWorker वर्ग एक कार्य कार्यकर्ता है, जो पृष्ठभूमि में समय लेने वाले कार्यों को करता है।
  • एक स्विंगवर्कर इंस्टेंस 3 थ्रेड्स के साथ इंटरैक्ट करता है, वर्तमान धागा , कार्यकर्ता सूत्र , और इवेंट डिस्पैच थ्रेड (EDT).
  • वर्तमान धागा निष्पादित करें () . को कॉल करता है कार्य को पृष्ठभूमि में शुरू करने और तुरंत वापस लौटने की विधि।
  • कार्यकर्ता धागा doInBackground() . के हमारे अपने संस्करण को निष्पादित करता है विधि लगातार पृष्ठभूमि में।
  • इवेंट डिस्पैच थ्रेड (ईडीटी) कार्यकर्ता . में जो हुआ उसके बारे में हमें सूचित करने के लिए समय-समय पर जागना धागा
  • जब doInBackground() समाप्त हो गया है, ईवेंट डिस्पैच थ्रेड (ईडीटी) किया गया () . के हमारे संस्करण को कॉल करके हमें सूचित करें विधि।
  • मध्यवर्ती मूल्यों को प्रकाशित करने के लिए, हम publish(V) . को कॉल कर सकते हैं doInBackground() . में विधि . इवेंट डिस्पैच थ्रेड (EDT) प्रक्रिया(सूची) . के हमारे संस्करण को कॉल करके हमें सूचित करता है विधि।
  • प्रगति गुण को अद्यतन करने के लिए, हम सेटप्रोग्रेस(i) . को कॉल कर सकते हैं doInBackground(). . में विधि ईवेंट डिस्पैच थ्रेड (ईडीटी) PropertyChangeListener . के हमारे संस्करण को कॉल करके हमें सूचित करता है कक्षा।
  • java.swing.JProgressbar class एक UI घटक है जिसे स्विंगवर्कर के रूप में कार्यान्वित पृष्ठभूमि कार्य की प्रगति दिखाने के लिए डिज़ाइन किया गया है उदाहरण।

उदाहरण

आयात करें {@ ओवरराइड सार्वजनिक शून्य रन() {जेएफआरएएम फ्रेम =नया जेएफआरएएम (); जेबटन बटन =नया जेबटन (); बटन जोड़ें। (); }}); बटन। सेटटेक्स्ट ("मुझे क्लिक करें !!!"); फ्रेम। getContentPane ()। जोड़ें (बटन); फ्रेम। सेटडिफॉल्टक्लोजऑपरेशन (जेफ्रेम। EXIT_ON_CLOSE); फ्रेम। (350, 300); फ्रेम.सेटविजिबल (सच); } }); }}वर्ग GUIWorker स्विंगवर्कर का विस्तार करता है {निजी JFrame फ्रेम =नया JFrame (); निजी JDialog संवाद =नया JDialog (फ्रेम, "स्विंगवर्कर टेस्ट", सत्य); निजी जेपी प्रोग्रेसबार प्रगतिबार =नया जेपी प्रोग्रेसबार (); सार्वजनिक GUIWorker () {प्रगतिबार.सेटस्ट्रिंग ("समय पर प्रतीक्षा कर रहा है"); प्रोग्रेसबार.सेटस्ट्रिंगपेंटेड (सच); प्रगतिबार.सेट अनिश्चित (सच); संवाद.getContentPane ()। जोड़ें (प्रगतिबार); डायलॉग.सेटसाइज (350, 300); डायलॉग.सेटमोडल (झूठा); डायलॉग.सेटलोकेशन रिलेटिव टू (अशक्त); डायलॉग.सेटविज़िबल (सच); } @Override संरक्षित पूर्णांक doInBackground () अपवाद फेंकता है {System.out.println ("GUIWorker doInBackground ()"); थ्रेड.स्लीप (10000); वापसी 0; } @ ओवरराइड संरक्षित शून्य किया गया () { System.out.println ("किया गया"); जेएलएबल लेबल =नया जेएलएबल ("कार्य पूर्ण"); संवाद.getContentPane ()। निकालें (प्रगतिबार); संवाद.getContentPane ()। जोड़ें (लेबल); संवाद। getContentPane ()। मान्य (); }}

आउटपुट

जावा में स्विंगवर्कर वर्ग का क्या महत्व है?

जावा में स्विंगवर्कर वर्ग का क्या महत्व है?


  1. जावा में कंटेनर क्लास का क्या महत्व है?

    कंटेनर एक कंटेनर वर्ग को एक विशेष घटक के रूप में वर्णित किया जा सकता है जो घटकों के संग्रह को पकड़ सकता है। स्विंग कंटेनर दो प्रकार के होते हैं, वे हैं शीर्ष-स्तरीय कंटेनर और निम्न-स्तरीय कंटेनर। शीर्ष-स्तरीय कंटेनर हैवीवेट . हैं कंटेनर जैसे JFrame , जेपलेट , जेविंडो , और JDialog । निम्न-स्तरीय

  1. Java में GridBagConstraints क्लास का क्या महत्व है?

    एक ग्रिडबैगलेआउट एक बहुत ही लचीला लेआउट प्रबंधक है जो हमें बाधाओं का उपयोग करके घटकों को एक दूसरे के सापेक्ष स्थिति में रखने की अनुमति देता है . प्रत्येक ग्रिडबैगलाउट कोशिकाओं के एक गतिशील आयताकार ग्रिड का उपयोग करता है जिसमें प्रत्येक घटक एक या एक से अधिक कोशिकाओं पर कब्जा कर लेता है जिसे इसका प्

  1. जावा में स्विंग यूटिलिटीज क्लास का क्या महत्व है?

    जावा में, स्क्रीन पर प्रदर्शित होने वाले स्विंग घटकों के बाद, उन्हें केवल एक थ्रेड द्वारा संचालित किया जा सकता है जिसे इवेंट हैंडलिंग थ्रेड कहा जाता है . हम अपना कोड एक अलग ब्लॉक में लिख सकते हैं और इस ब्लॉक को ईवेंट . का संदर्भ दे सकते हैं हैंडलिंग धागा . स्विंग यूटिलिटीज कक्षा में दो महत्वपूर्ण