Java Swing revalidate () vs repaint ()

Estoy armando una aplicación Swing donde a menudo quiero reemplazar el contenido de un JPanel. Para hacer esto, estoy llamandoremoveAll(), luego agregando mi nuevo contenido, luego llamandorevalidate().

Sin embargo, estoy descubriendo que el contenido antiguo todavía es visible (aunque está oculto por el contenido nuevo). Si agrego una llamada arepaint() además derevalidate(), funciona como se espera.

Estoy seguro que en otras ocasiones he experimentado que solo llamandorevalidate() es suficiente.

Básicamente, mi pregunta es: ¿debo llamar a ambas funciones y, de no ser así, cuándo debo llamar a cada una de ellas?

Respuestas a la pregunta(5)

Su respuesta a la pregunta