Hummm....acho que estou entendendo este seu "mozaico", vamos lá...
public Inicial(){
Inicial inicial = new Inicial(listaEmpresa);
}
public Inicial(List<Empresas> empresas){
setVisible( true );
}
//Main
public static void main( String args[] ){
Inicial inicial = new Inicial();
inicial.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
HIPÓTESE do porque a tela fecha mas continua executando:
O construtor Inicial() aciona o outro construtor Inicial(List empresas) que constroi um objeto com o atributo visible igual a true que é a janela que VOCÊ ESTA VISUALIZANDO; o construtor anterior, o Inicial() constroi um objeto com o atributo visible igual a false que é a janela que VOCÊ NÂO ESTA VISUALIZANDO.
O objeto ( QUE VOCÊ NÂO ESTA VISUALIZANDO ) construido pelo construtor Inicial() é atribuido à variável inicial no método main, onde tudo começou, logo em seguida vc atribuiu o valor JFrame.EXIT_ON_CLOSE no atributo defaultCloseOperation à este objeto.
CONCLUSÂO: Como você não está VISUALIZANDO o objeto construido pelo construtor Inicial() vc não tem como "clicar" no ícone fechar da janela, porem, vc está VISUALIZANDO o objeto construido pelo construtor Inicial(List empresas) e o atributo defaultCloseOperation deste objeto não recebeu o valor JFrame.EXIT_ON_CLOSE; porque todos os atributos foram definidos dentro do próprio construtor e a referencia para este objeto ficou sob o domínio do construtor Inicial().
SUGESTÃO:
Tente fazer o seguinte:
public Inicial(){
Inicial inicial = new Inicial(listaEmpresa);
}
public Inicial(List<Empresas> empresas){
setVisible( true );
setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
//Main
public static void main( String args[] ){
Inicial inicial = new Inicial();
}
Olhando para o método main fica uma dúvida...e o objeto construido pelo construtor Inicial()? vai ficar invisivel :?:
Espero não ter confundido tudo rsrsrsrs.
[]'s