Como esperar que um JFrame feche antes de continuar?

Meu programa consiste em 3 'seções' principais. Função principal, formulário de login e formulário de aplicativo. A função principal deve fazer algo como: Abra o formulário de Login, espere que ele feche e abra o formulário de aplicativo. Não consigo fazer a parte da espera funcionar, ou melhor, não sei como andaria fazendo isso.

Foi-me dito por alguém para usar um JDialog em vez disso e usarsetModal(true), mas com essa abordagem o formulário de Login não apareceria na barra de tarefas, o que é terrível na minha opinião.

Outra coisa que considerei foi abrir o App de dentro do Login depois que ele fecha, mas isso parece um design ruim, já que isso tornaria o formulário de Login não reutilizável.

Então, por favor, o que você sugere?

questionAnswers(1)

yourAnswerToTheQuestion