मुझे लगता है कि अधिकांश जावा कोड पेंट या पेंट को ओवरराइट करने के लिए कॉम्पोनेंट है, उनमें से अधिकतर ग्राफिक्स ऑब्जेक्ट को पुराने ग्राफिक्स ऑब्जेक्ट को पुनर्स्थापित नहीं करते हैं, ग्राफिक्स की स्थिति बदलने के बाद वस्तु। उदाहरण के लिए, setStroke, setRenderingHint ...ग्राफिक्स मूल स्थिति को पुनर्स्थापित करने की आवश्यकता जब पेंट या पेंट ओवरराइट किया गया कॉम्पोनेंट
मैं सोच रहा था कि यह एक अच्छा अभ्यास है कि हम विधि से लौटने से पहले, ग्राफिक्स ऑब्जेक्ट की पुरानी स्थिति को पुनर्स्थापित करते हैं। उदाहरण के लिए
public void paintComponent(Graphics g) {
super.paintComponet(g);
Stroke oldStroke = g.getStroke();
g.setStroke(newStroke);
// Do drawing operation.
g.setStroke(oldStroke);
}
क्या यह एक अच्छा अभ्यास है? या यह खत्म हो गया है?
मैं जावाकॉक के साथ जेकंपोनेंट के लिए इस उत्तर का समर्थन करने जा रहा हूं जो सहमत है: http : //docs.oracle.com/javase/6/docs/api/javax/swing/JComponent.html#paintComponent%28java.awt.Graphics%29 –