paintComponent()的最佳实践

时间:2014-10-23 06:01:05

标签: java swing jpanel graphics2d jcomponent

我使用Graphics java库渲染一个矩形,其中paintComponent()方法绘制矩形,绘图方面的一切都很好。

我的问题是paintComponent是继续渲染还是只渲染一次,如果窗口发生变化或发生任何事件,它会更改视图。所以我写了一个简单的System.out.println来检查它是否继续打印它,它确实如此。那么有没有办法阻止这种情况发生,或者将渲染保留原样是好的,因为它正在完成我的目标?

1 个答案:

答案 0 :(得分:2)

首先看看Painting in AWT and SwingPerforming Custom Painting

Swing使用被动渲染引擎,也就是说,它仅在感觉必须时进行绘制。绘画可能由于多种原因而发生,其中许多原因是您无法控制的,但您可以通过repaint方法向重绘经理提出请求。

  

所以我写了一个简单的System.out.println来检查它是否继续打印它,它确实

建议出现问题,paintComponent在正常情况下不应重复调用。当然,如果您正在制作动画并且需要更新图形,则会发生这种情况。

  

那么有没有办法阻止这种情况的发生,或者将渲染保留为原样

考虑提供展示您问题的runnable example。这样可以减少混淆和更好的反应。

如果不知道自己在做什么,就无法知道建议的内容......