各メソッドの働きについて良く混乱するので、まとめます。もっとも、Swingではinvalidate()とvalidate()を直接呼ぶ局面はほとんどないと思います。 invalidate() 自分自身と、全ての親コンポーネントをinvalidにする。 このメソッドはフラグを立てるだけ。 validate() コンポーネントがinvalidなら、レイアウトを再実行した上でvalidにする。 invalidな子コンポーネントがあれば、再帰的にvalidate()を実行する。 コンポーネントがすでにvalidなら、何もしない。 revalidate() まず、自身のinvalidate()を実行する。 次に、親コンポーネントを順に辿り、isValidateRoot()がtrueを返すコンポーネントを探す。ちなみに、trueを返すのはJRootPaneとJScrollPaneとJTextField