2009-06-11 12 views
5

मैं जावा रीपेंट विधि का उपयोग करता हूं, यह पश्चाताप करता है, लेकिन अपडेट केवल तभी देखा जाता है जब मैं या तो कैनवास पर क्लिक करता हूं या पैनल का आकार बदलता हूं। मैं इसे कैसे ठीक करूं ? इसका क्या कारण होता है?जावा पेंट सही ढंग से काम नहीं कर रहा है

+4

कोड ...., कृपया? या आप हमें अनुमान लगाना चाहते हैं। –

+0

क्या आप केवल मानक स्विंग घटकों का उपयोग कर रहे हैं? क्या आपने कस्टम घटक बनाया है? –

+0

स्विंग? AWT? SWT? सहायक उत्तर देने के लिए हमें और जानकारी चाहिए। –

उत्तर

15

आपको विधि revalidate() को कॉल करने की आवश्यकता है। यह लेआउट मैनेजर को अपने सभी घटकों को अद्यतन/पुनर्निर्मित करने के लिए मजबूर करता है।

2

repaint() वास्तव में पुनर्भुगतान नहीं कर रहा है, यह है घटक का एक प्रतिनिधि अनुरोध।

0

उस घटक से ग्राफ़िक्स ऑब्जेक्ट को आसानी से पकड़ना उपयोगी हो सकता है, जिसे आप पेंट करना चाहते हैं। फिर ग्राफिक्स ऑब्जेक्ट पर बस एक पेंट विधि का आह्वान करें। उदाहरण के लिए:

g = component.getGraphics(); 
draw(g); 
+0

यह वास्तव में स्विंग थ्रेड पर वास्तव में बहुत उपयोगी है – aepurniet