2011-08-12 16 views
6

कोडबेस में हमने विरासत में MediaTracker का उपयोग प्रत्येक कोड ब्लॉक में स्थानीय रूप से किया था।मीडियाट्रैकर - इसका उपयोग कैसे करें, लाभ क्या हैं, या क्या कोई बदलाव है?

final static protected MediaTracker mediatracker = new MediaTracker(new Canvas()); 

static protected void checkImageIsReady(Image i) { 
    mediatracker.addImage(i, 1); 
    try { 
     mediatracker.waitForAll(); 
    } catch (InterruptedException e) { } 
    mediatracker.removeImage(i); 
} 

इस प्रकार अब तक किए गए हैं कोई बीमार प्रभाव:

new MediaTracker(new Canvas()); 
mediatracker.addImage(i, 1); 
try { 
    mediatracker.waitForAll(); 
} catch (InterruptedException e) { } 
mediatracker.removeImage(i); 

निर्णय लेना इस अक्षम था, मैं अंत में यह एक स्थिर उदाहरण और विधि के साथ बदल दिया।

एक और संभावित दृष्टिकोण है - प्रत्येक घटक (आमतौर पर एक फ्रेम या जेएफआरएएम) में मीडियाट्रैकर को संलग्न करने के लिए जो constructor documentation द्वारा लेने के दृष्टिकोण के रूप में दृढ़ता से निहित है।

  1. MediaTracker कैसे और क्यों उपयोग करने के लिए:

    तो मैं 2 प्रश्न हैं?

  2. विकल्प क्या है?

उत्तर

8

मीडियाट्रैकर 1995 में उपयोगी था। फिर जावा का प्राथमिक जीयूआई उपयोग एप्लेट था, और एप्लेट आमतौर पर नेटवर्क पर छवियों को धीरे-धीरे लोड करते थे।

ऐप्पल लेखकों के लिए इसे आसान बनाने के लिए, जावा ने हमें एक अच्छा मीडियाट्रैकर एपीआई दिया जो पृष्ठभूमि में छवियों को डाउनलोड करेगा, ट्रैकिंग के दौरान ट्रैकिंग करेगा, और यहां तक ​​कि सूचनाएं भी देगी जब छवियां partially loaded थीं। मीडियाट्रैकर एपीआई का मतलब है कि ऐप्पल लेखकों को एप्लिकेशन को अवरुद्ध करने की आवश्यकता नहीं थी, जबकि छवियों को धीरे-धीरे डाउनलोड किया गया था, और पृष्ठभूमि धागे में छवियों को लोड करने के लिए जटिल थ्रेडिंग कोड लिखना नहीं था।

इन दिनों आप आमतौर पर छवियों को सिंक्रनाइज़ लोड कर सकते हैं, और ImageIO का उपयोग करना सबसे अच्छा है। यह सामान्य मामले के लिए विशेष रूप से सच है जहां छवियों को स्थानीय फाइल सिस्टम से लोड किया जाता है।

3

MediaTracker

?

तीसरी सहस्राब्दी में हमसे जुड़ें और ImageIO.read(File/URL/InputStream) का उपयोग करें। में हमारे सहस्राब्दी, MediaTracker अप्रासंगिक है।

+0

जब तक [उन स्निपेट्स] (http://www.java2s.com/Code/Java/2D-Graphics-GUI/ConvertjavaawtimageBufferedImagetojavaawtImage.htm) ऑनलाइन हैं, MediaTracker मर नहीं जाएगा। – oliholz

+1

यहां [एक लेख] (http://weblogs.java.net/blog/chet/archive/2004/07/imageio_just_an.html) MediaTracker पर ImageIO के गुणों को विस्तारित करना है। –

+2

यह प्रश्न का उत्तर नहीं प्रदान करता है। किसी लेखक से स्पष्टीकरण की आलोचना या अनुरोध करने के लिए, अपनी पोस्ट के नीचे एक टिप्पणी छोड़ दें। –