I realize most of the Java code to overwritten paint or paintComponent, most of them doesn’t restore the old state of graphics object, after they had change the state of graphics object. For example, setStroke, setRenderingHint…
I was wondering whether it is a good practice that we restore back the old state of graphics object, before returning from the method. For example
public void paintComponent(Graphics g) {
super.paintComponet(g);
Stroke oldStroke = g.getStroke();
g.setStroke(newStroke);
// Do drawing operation.
g.setStroke(oldStroke);
}
Is this a good practice? Or it is over done?
You should not alter the Graphics object passed in at all, rather perform all your graphics operations on a copy of it which you then dispose. There’ll be no need to reset the state at all then.