El problema es que cuando cierro la aplicación desde la ventana principal con "X" en el extremo superior derecho de la ventana no cierra realmente la aplicación; como si quedara el thread del JDialog corriendo debajo. Pasa lo mismo cuando cierro la ventana de Login sin autenticarse.
Probé quitarle la propiedad modal al JDialog pero se inician la ventana Login y Principal al mismo tiempo.
La clase Login extiende a JDialog y setea una variable estática que se encuentra en Aplicacion cuando el usuario es válido, caso contrario esta variable está vacía ("").
La aplicación fue generada mediante Netbeans y en la clase Aplicacion (main) tengo el siguiente código de ejecución:
Código PHP:
public class Aplicacion extends SingleFrameApplication {
@Override protected void startup() {
...
show(new Login()); // Si el usuario es válido setea la variable estática Aplicacion.usuario con el nombre del usuario.
if (!Aplicacion.usuario.equals(""))
show(new Principal(this));
}
}