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);