jDialog expansível em java

Para minha inscrição, tenho umJDialog que contém umJPanel com alguns básicosJTextFields eJButtons. A idéia é ter um botão que expanda oJDialog para revelar um segundoJPanel que contém algumas configurações "avançadas".

Eu consegui isso chamandosetPreferredSize() epack(), mas isso não é muito elegante. Uma solução "elegante" seria definir o segundo painel como algo nulo e, portanto, ser ignorado pelo pack () quando o estado de alternância estiver em "retraído".

Lamento não poder fornecer código (isso é cerca de 700 mentiras), mas é como se eu dissesse basicamente dois JPanels em um JDialog.

Aqui estão algumas fotos:

Pergunta: existe um truque para fazer essa coisa de expansão sem ter que definir dimensões fixas para o estado expandido / normal.

questionAnswers(1)

yourAnswerToTheQuestion