Por padrão, no JFrame, quando se clica no fechar, ele é escondido, ou seja, o objeto ainda está vivo, apenas invisível.
Não sei como vc está procedendo para manipular o fechamento do seu JFrame.
Se vc estiver usando o NetBeans, por padrão ele registra que um frame deve terminar a aplicação quando for clicado em fechar (EXIT_ON_CLOSE). Isso é feito através do método setDefaultCloseOperation (a segunda propriedade “defaultCloseOperation”).
Mude ela para DISPOSE_ON_CLOSE se vc quiser que o frame seja “destruído” quando clicar no fechar ou HIDE_ON_CLOSE se quiser que ele se torne invisível. Se vc quiser que nada seja feito, vc ainda pode usar a constante DO_NOTHING_ON_CLOSE.
Dê uma olhada, sua aplicação deve estar sendo terminada justamente por esse comportamento padrão do NetBeans de fazer todos os JFrames EXIT_ON_CLOSE.
Até mais!