Java repaint not working correctly

2019-04-30 16:35发布

问题:

i use the java repaint method , it repaints, but the update is only seen when I either click on the canvas or resize the panel. How can I fix this ? What causes it?

回答1:

You need to call the method revalidate(). This forces the layout manager to update / repaint all its components.



回答2:

repaint() isn't actually repainting, it's just requesting a repaint of the component.



回答3:

It may be helpful to simply grab the Graphics object from the component you wish to paint. Then just invoke a paint method on the Graphics object. For example:

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