[英]JComponent: how to do a repaint in the most correct way?
我們有以下方法:
java.awt.Component#repaint()
這是在AWT中重新繪制的舊方法。 它不會立即重新繪制,而是計划重新繪制。
javax.swing.JComponent#repaint(long, int, int, int, int)
這是在Swing中重新繪制的新的swing方法。 它使用RepaintManager計划重新繪制。
它們都可以從用戶線程以及事件調度線程中調用。
其中哪一種是重繪Swing組件( JComponent
)的最正確方法?
其中哪一種是重繪Swing組件(JComponent)的最正確方法?
兩者都是正確的方法。
當您通過使用setText(),setForeground(),setBackground()等更改組件的屬性時,Swing組件始終會調用repaint()
。這將確保整個組件都被重新繪制。
如果您需要優化組件的repaint(...)
則可以調用repaint(...)
方法。 如果您的組件很大,而組件的更改只占很小一部分,則可以使用此方法。 但是,我建議您不要為此擔心。 Swing繪畫是雙重緩沖且高效的,因此很少需要優化繪畫代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.