慕神8447489
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(); } }}