मैं एक स्विंग एप्लिकेशन को एक साथ रख रहा हूं जहां मैं अक्सर जेपीनल की सामग्री को प्रतिस्थापित करना चाहता हूं। ऐसा करने के लिए, मैं removeAll()
पर कॉल कर रहा हूं, फिर मेरी नई सामग्री जोड़ रहा हूं, फिर revalidate()
पर कॉल कर रहा हूं।जावा स्विंग रिवालिडेट() बनाम repaint()
हालांकि मुझे लगता है कि पुरानी सामग्री अभी भी वास्तव में दिखाई दे रही है (हालांकि नई सामग्री से अस्पष्ट)। अगर मैं revalidate()
के अलावा repaint()
पर कॉल जोड़ता हूं, तो यह अपेक्षा के अनुसार काम करता है।
मुझे यकीन है कि अन्य अवसरों पर मैंने अनुभव किया है कि revalidate()
पर कॉल करना पर्याप्त है।
तो मूल रूप से मेरा सवाल है - क्या मुझे दोनों कार्यों को कॉल करने की आवश्यकता है और यदि नहीं, तो मुझे उनमें से प्रत्येक को कब कॉल करना चाहिए?
[ओरेकल से यह ट्यूटोरियल] (http://docs.oracle.com/javase/tutorial/uiswing/components/jcomponent।एचटीएमएल # custompaintingapi) कहता है: "हमेशा पुनर्मूल्यांकन के बाद पश्चाताप का आह्वान करें"। यद्यपि कोई स्पष्टीकरण प्रदान नहीं किया गया है। – mins