大家好,欢迎来到IT知识分享网。
invalidate()将容器标记为无效。意味着内容在某种程度上是错误的,必须重新布局。但它只是一种标志/旗帜。有可能以后必须刷新多个无效容器。
validate()执行重新布局。这意味着要求所有大小的无效内容,并且LayoutManager将所有子组件的大小设置为正确的值。
revalidate()只是两者的总和。它将容器标记为无效并执行容器的布局。
更新:
Component.java中的一些代码
public void revalidate() {
revalidateSynchronously();
}
/**
* Revalidates the component synchronously.
*/
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();
}
}
}
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/11228.html