Estoy armando una aplicación Swing donde a menudo quiero reemplazar el contenido de un JPanel. Para hacer esto, llamo removeAll(), luego agrego mi nuevo contenido, luego llamo revalidate().
Sin embargo, estoy descubriendo que el contenido anterior todavía es realmente visible (aunque oscurecido por el contenido nuevo). Si agrego una llamada repaint()además de revalidate(), funciona como se esperaba.
Estoy seguro de que en otras ocasiones he experimentado que solo llamar revalidate()es suficiente.
Básicamente, mi pregunta es: ¿debería tener que llamar a ambas funciones y, si no, cuándo debo llamar a cada una de ellas?