validate(): W Swingu, kiedy tworzysz komponent, to nie jest, validtj. Jego prawidłowa właściwość jest false. Mówi się, że komponent jest ważny, gdy jego szerokość, wysokość, położenie i inne rzeczy zostały określone. Odbywa się to zwykle przez wywołanie ich validate()metody, bezpośrednio lub pośrednio. Kiedy wywołujemy validate()kontenery, zweryfikuje kontener (jeśli jest nieprawidłowy), wywołując jego doLayout()metodę, która zwykle wywoła LayoutManager. Teraz każde dziecko umieszczone w tym kontenerze będzie walidowane rekurencyjnie, tak że całe drzewo zostanie ułożone i stanie się ważne.
revalidate(): revalidate()ma zostać wywołane, gdy zmienisz atrybut, który wpłynąłby na ich szerokość / wysokość, i wywołaj repaint (), gdy zmienisz atrybut, który wpłynie na ich wygląd. Na przykład, jeśli twój JFramezawiera a JPanel, teraz w pewnym momencie usunąłeś go JPaneli wstawiłeś nowy w jego miejsce, w zależności od zawartości nowo umieszczonego JPanel, rozmiaru komponentów wewnątrz, JPaneljak również The CONTAINERsamego (na mocy używanego przez niego menedżera układu), zmiany. Co popycha go do nieprawidłowego stanu. Aby więc zweryfikować tę zmianę, musisz jawnie wywołać revalidate().
invalidate(): To jest coś, czego nigdy nie używałem, więc może nie być wiele informacji na ten temat. Wygląda jednak na to, że przedstawione powyżej scenariusze mogą dać wskazówkę, co się dzieje podczas używania invalidate().
revalidate()nie dzwonidoLayout(), covalidate()robi. Więc tak naprawdę nie jest sumą obu -revalidatenie zawsze jest prawidłowym zamiennikiemvalidate.