[英]how do I choose between JComponent.revalidate and Container.validate
我正在使用WindowBuilder和Swing。 我在Swing JPanel上執行以下操作:
java.awt.Container.setLayout()
java.awt.Container.removeAll()
java.awt.Container.add()
最后,我調用:
java.awt.Container.validate()
但我注意到javax.swing.JComponent.revalidate()
在實踐中似乎做同樣的事情。 我沒有觀察到任何行為上的差異。 JPanel繼承自Container和JComponent。 我該如何選擇呢?
3個重要區別:
JComponent#revalidate()
首先使Container#validate()
不執行的組件無效。 JComponent#revalidate()
不會立即進行驗證,它會將組件添加到無效組件列表中,並且RepaintManager
將批量驗證組件。 當需要大量驗證時,這可以提高性能。 JComponent#revalidate()
,而不僅僅是事件分發線程。 除非您需要立即生效(僅在特殊情況下才需要),否則最好使用JComponent#revalidate()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.