簡體   English   中英

JComponent:如何以最正確的方式進行重繪?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM