栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Swing GUI中validate(),revalidate()和invalidate()之间的区别

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Swing GUI中validate(),revalidate()和invalidate()之间的区别

invalidate()
将容器标记为无效。表示内容某种程度上是错误的,必须重新布置。但这只是一种标记/标志。以后可能必须刷新多个无效的容器。

validate()
执行中继。这意味着要求无效的内容的所有大小,并且所有子组件的大小都由LayoutManager设置为适当的值。

revalidate()
只是两者的总和。它将容器标记为无效并执行容器的布局。

更新:

Component.java的一些代码

public void revalidate() {    revalidateSynchronously();}final void revalidateSynchronously() {    synchronized (getTreeLock()) {        invalidate();        Container root = getContainer();        if (root == null) { // There's no parents. Just validate itself. validate();        } else { while (!root.isValidateRoot()) {     if (root.getContainer() == null) {         // If there's no validate roots, we'll validate the         // topmost container         break;     }     root = root.getContainer(); } root.validate();        }    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/441848.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号