gpt4 book ai didi

java - 如何在 JComponent.revalidate 和 Container.validate 之间进行选择

转载 作者:太空宇宙 更新时间:2023-11-04 08:29:24 25 4
gpt4 key购买 nike

我正在使用 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()

关于java - 如何在 JComponent.revalidate 和 Container.validate 之间进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7817571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com