JComponent:如何以最正确的方式进行重绘?

时间:2018-08-01 14:10:51

标签: java swing

我们有以下方法:

  • java.awt.Component#repaint()
      

    这是在AWT中重新绘制的旧方法。它不会立即重新粉刷,而是计划重新粉刷。

  • javax.swing.JComponent#repaint(long, int, int, int, int)
      

    这是在Swing中重新绘制的新的swing方法。它使用RepaintManager计划重新绘制。

它们两者都可以从用户线程以及事件调度线程中调用。

其中哪种是重绘Swing组件(JComponent)的最正确方法?

1 个答案:

答案 0 :(得分:0)

  

其中哪些是重绘Swing组件(JComponent)的最正确方法?

这两种方法都是正确的。

当您使用setText(),setForeground(),setBackground()等更改组件的属性时,Swing组件始终会调用repaint()。这将确保重新绘制整个组件。

如果您需要优化组件的绘制,则可以调用repaint(...)方法。如果您的组件很大,而组件的更改只占很小一部分,则可以使用此方法。但是,我建议您不要为此担心。 Swing绘画具有双重缓冲和高效功能,因此很少需要优化绘画代码。