我们有以下方法:
java.awt.Component#repaint()
这是在AWT中重新绘制的旧方法。它不会立即重新粉刷,而是计划重新粉刷。
javax.swing.JComponent#repaint(long, int, int, int, int)
这是在Swing中重新绘制的新的swing方法。它使用RepaintManager计划重新绘制。
它们两者都可以从用户线程以及事件调度线程中调用。
其中哪种是重绘Swing组件(JComponent
)的最正确方法?
答案 0 :(得分:0)
其中哪些是重绘Swing组件(JComponent)的最正确方法?
这两种方法都是正确的。
当您使用setText(),setForeground(),setBackground()等更改组件的属性时,Swing组件始终会调用repaint()
。这将确保重新绘制整个组件。
如果您需要优化组件的绘制,则可以调用repaint(...)
方法。如果您的组件很大,而组件的更改只占很小一部分,则可以使用此方法。但是,我建议您不要为此担心。 Swing绘画具有双重缓冲和高效功能,因此很少需要优化绘画代码。