Java重绘不正确

5

我使用Java的repaint方法进行重绘,但只有当我单击画布或调整面板大小时,更新才会显示。如何解决这个问题?是什么原因导致的?


4
代码是什么?请提供还是你想让我们猜测? - Adeel Ansari
你是否只使用标准的Swing组件?你是否制作了自定义组件? - Steve McLeod
Swing?AWT?SWT?我们需要更多信息才能给出有帮助的答案。 - Steve McLeod
3个回答

15

您需要调用revalidate()方法。这将强制布局管理器更新/重绘其所有组件。


2

repaint()并不是真正的重绘,它只是请求组件进行重绘。


1

从您希望绘制的组件中获取Graphics对象可能会很有帮助。然后只需在Graphics对象上调用paint方法即可。例如:

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

当已经在Swing线程上时,这实际上非常有用。 - aepurniet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接