awt

2010-05-16 12 views
7

के साथ डबल बफरिंग क्या डबल बफरिंग (जावा में) संभव है? वर्तमान में, मुझे पता है कि स्विंग का उपयोग बहुत से नहीं किया जाना चाहिए, इसलिए मैं BufferStrategy और whatnot का उपयोग नहीं कर सकता (मेरे पास पहले से ही कुछ कोड लिखा गया है कि मैं स्विंग में फिर से लिखना नहीं चाहता)।awt

यदि डबल बफरिंग संभव है, तो क्या मुझे हाथ से बफर लिखना है? स्विंग के विपरीत, ऐसा लगता है कि एक ही अंतर्निहित डबल बफरिंग क्षमता नहीं है।

अगर मुझे हाथ से कोड लिखना है, तो क्या देखने के लिए एक अच्छा ट्यूटोरियल है? या क्या यह नौसिखिया प्रोग्रामर के लिए स्विंग का उपयोग करने के लिए बस इतना आसान/सलाह है?

बहु-चरण प्रश्न के बारे में क्षमा करें। आपके समय के लिए धन्यवाद :)

उत्तर

6

यह आसानी से वेब पर उत्तर दिया जाता है। बस "डबल बफर awt" के लिए खोजें और आपको उदाहरणों के बहुत सारे मिलेंगे। आप an old example भी देख सकते हैं मैंने 1 99 8 में जावा 1.0 एडब्ल्यूटी में खुद को लिखा था। आपको बस अपनी खुद की ग्राफिक्स ऑब्जेक्ट को तुरंत चालू करने और किसी छवि पर आकर्षित करने की आवश्यकता है, फिर उस छवि को कैनवास में दबाएं। मेरे उदाहरण में कोड का मुख्य बिट यहां दिया गया है:

public void paint(Graphics g) { 
    if (doubleBuffer) { 
     paintSky(top.gBuf); 
     g.drawImage(top.buf, 0, 0, this); 
    } else { 
     paintSky(g); 
    } 
    } 
+1

मैं कहूंगा कि यदि संभव हो तो स्विंग कार्यान्वयन का पुन: उपयोग करने की सलाह दी जाती है। – aioobe

+0

ओह प्रिय, मैं कोड नहीं चला सकता, क्योंकि newStuff() विधि वहां नहीं है। डी: – exodrifter

+0

@ डीडीपी: हुह, ठीक है यह अजीब है। जाहिर है, मैंने एक दशक में उस कोड को संकलित करने की कोशिश नहीं की है ... संकलित कोड यहां एक एप्लेट के रूप में चल रहा है: http://www.astro.wisc.edu/~dolan/java/Constellations.html तो स्रोत I जुड़ा हुआ सही संस्करण नहीं होना चाहिए। –