Java expandible JDialog

Para mi aplicación tengo unJDialog que contiene unJPanel con algo básicoJTextFields yJButtons. La idea es tener un botón que expanda elJDialog para revelar un segundoJPanel que contiene algunas configuraciones "avanzadas".

He logrado esto llamandosetPreferredSize() ypack(), pero esto no es muy elegante. Una solución "elegante" sería establecer que el segundo Panel sea de alguna manera nulo y, por lo tanto, ser ignorado por pack () cuando el estado de alternancia esté en "retraído".

Lo siento, no puedo proporcionarle el código (eso es aproximadamente 700 mentiras), pero todo es como dije básicamente dos JPanels en un JDialog.

Aquí algunas fotos:

Pregunta: ¿hay algún truco para que esto se expanda sin tener que establecer dimensiones fijas para el estado expandido / normal?

Respuestas a la pregunta(1)

Su respuesta a la pregunta