Problema com JFrame

olá, sou novo aqui no forum como membro, mas já peguei muita ajuda daqui em tempos dificei,
como o que estou passando agora.

meu problema é o seguinte:
conheço a classe JOptionPane que possui um método static chamado showConfirmationDialog(Component, Object, String , int);

quando chamo esse método o controle do programa fica com ele, e só devolve o controle após o usuario clicar em algum butão.

tentei fazer algo parecido com JFrame fazendo assim:

public void showFrame()
{

JFrame frame = new JFrame("Sair");
setSize(100, 150);
setContentPane(getPanel());

//ESSE MÉTODO getPanel() retorna um JPanel que possui dois butões : SIM e NAO
// O MÉTODO actionPerformed do ActionListener dos butões possui a instrução : end = true;


setVisible(true);



try
{
while(!end)
    Thread.sleep(100);
}
catch(InterruptedException e)
{
return;

}




}

Meu problema é: chamei esse método através de uma sobreposição de windowClosing de outro frame mas o que acontence é que a frame criada com a chamada do método não tem nenhum componente no JPanel
e se você tentar fechar ele da maneira convencional, nada acontence! ele simplesmente trava! só sai com Ctrl-Alt_Del e ainda pede para finalizar tarefa!

alguem poderia me explicar porquê isso acontece, ou então postar um codigo que funcione(sem utilizar JOptionPane) ?