Dúvida JAVA: A tela de um JFrame não chega, como resolver?

Fiz esse código para o usuário ter a opção de reiniciar o jogo, só que meu jframe tela não fecha, o que faço?

int opcao = JOptionPane.showConfirmDialog(this, "Jogar Novamente", "", JOptionPane.YES_NO_OPTION);
if (opcao == 0)
{
   new tela().setVisible(false);
   new manual().setVisible(true);                
}
else
{
   System.exit(0);
}

sem ver o codigo da sua tela ou manual, fica dificil, mas tem alguma coisa estranha ai.
se vc quer reiniciar o jogo, bastaria vc iniciar o mesmo novamente. isso pode ser feito em um loop

boolean continua = false;
do {
   // começando hein...
   // apresenta o jogo
   // acabou?
   // pergunta se quer continuar
} while ( continua );

// fim
System.exit(0); // talvez desnecessario