validate()
: En Swing, cuando crea un componente, no lo es, es valid
decir, su propiedad válida es false
. Se dice que un componente es válido cuando se ha determinado su ancho, alto, ubicación y cosas. Esto generalmente se hace llamando a su validate()
método, directa o indirectamente. Cuando llamamos validate()
a contenedores, validará el contenedor (si no es válido) llamando a su doLayout()
método, que normalmente invocará el LayoutManager
. Ahora, cada niño colocado en este contenedor se validará de forma recursiva, de modo que todo el árbol se distribuirá y será válido.
revalidate()
: revalidate()
se debe llamar cuando cambia un atributo que afectaría su ancho / alto y llamar a repaint () cuando cambia un atributo que afectaría su apariencia. Por ejemplo, si JFrame
contiene un JPanel
, ahora en un momento determinado lo eliminó JPanel
e insertó uno nuevo en su lugar, dependiendo del contenido del recién colocado JPanel
, el tamaño de los componentes dentro del JPanel
y él The CONTAINER
mismo (en virtud de del administrador de diseño utilizado por él), cambios. Lo que lo empuja al estado inválido. Entonces, para validar este cambio, debe llamar explícitamente revalidate()
.
invalidate()
: Esto es algo que nunca he usado, por lo que puede que no haya mucha información que pueda proporcionar al respecto. Pero parece que los escenarios presentados anteriormente pueden dar una pista de lo que sucede al usar invalidate()
.
revalidate()
no llamadoLayout()
, lo quevalidate()
hace. Por lo tanto, no es realmente una suma de ambos,revalidate
no siempre es un reemplazo válido paravalidate
.