Cerrar un JDialog con un boton

Disculpen e estado intentando cerrar un Jdialog correctamente.

Primera opción cree un botón para cerrar el JDialog.

cerrar.addActionListener(new ActionListener(){
                        public void actionPerformed(ActionEvent evt){
                                dispose();
                        }
                });

La segunda opción fue crear un evento sobre la ventana de JDialog.

addWindowListener ( new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
}
});

Ambas cierran la ventana, pero veo que en Netbeans y en la ventana de procesos de windows aún se encuentra en ejecutando la maquina virtual de java, en pocas palabras sigue en ejecución.

Me podrían ayudar a como cerrar correctamente el JDialog.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Ejecuta

Ejecuta

System.exit(0);

Para terminar la JVM.

Por default las ventanas ( lo que herede de java.awt.Window ) no cierran la aplicación cuando se cierran (puede ser que la aplicación haga aún otras cosas)

Cuando usas JFrame esta el método setDefaultCloseOperation que generalmente va acompañado con la opción EXIT_ON_CLOSE, pero con JDialog esta opción no está disponible. Si quieres cerrar tu aplicación cuando se cierra el JDialog, llama a System.exit.

No quiero que se cierre mi

No quiero que se cierre mi JFrame cuando cierro el Jdialog ya que ese no es el objetivo de mi ventana.

lo que pretendo con el JDialog es que el usuario introduzca datos (titulo del proyecto, referencias, etc) y guardarlos en la base de datos pero en estos momentos estoy probando los botones agregar elementos, para después programarlo para que haga lo que se me pide pero aun que cierre la ventana (JFrame) donde fue llamado el JDialog el proceso (maquina virtual de java) aun estan en ejecución, yo crei que era algun error en el JFrame puede que no finalizara algún proceso pero no, moví hice todo lo que se puede hacer en la ventana guarde, actualice y elimine sin hacer uso del JDialog y el JFrame me cierra sin problemas terminando el proceso.

El código de que estoy tratando de hacer.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class Dialogo1 extends JDialog{

        JLabel programa = new JLabel("Datos del Proyecto", JLabel.CENTER);
        JLabel autor = new JLabel("Titulo: ", JLabel.CENTER);
        JLabel derechos = new JLabel("Cliente", JLabel.CENTER);
        JButton aceptar = new JButton("Aceptar");
        JPanel principal = new JPanel(new BorderLayout());
        JPanel info = new JPanel(new GridLayout(3, 1));
        JPanel boton = new JPanel(new FlowLayout());
        //CONSTRUCTOR DE LA CLASE
        public Dialogo1(){
                super(new Frame(), "Nuevo Proyecto", true);
                info.add(programa);
                info.add(autor);
                info.add(derechos);
                boton.add(aceptar);
                principal.add("Center", info);
                principal.add("South", boton);
                getContentPane().add(principal);
                pack();
                setResizable(false);
                Dimension pantalla, cuadro;
                pantalla = Toolkit.getDefaultToolkit().getScreenSize();
                cuadro = this.getSize();
 
                this.setLocation(((pantalla.width - cuadro.width)/2), (pantalla.height - cuadro.height)/2);
                aceptar.addActionListener(new ActionListener(){
                        public void actionPerformed(ActionEvent evt){
                            //System.exit(1);
                                dispose();
                        }
                });
                 // this.processWindowEvent(new WindowEvent(this, WindowEvent.WINDOW_CLOSING));
        }//FIN DEL CONSTRUCTOR DE LA CLASE Dialogo    
         public static void main(String[] args) {
        // TODO code application logic here
      Dialogo1 dj = new Dialogo1();
      dj.setLocationRelativeTo(null);
      dj.setVisible(true);
    }
 
}

Cual JFrame? Si quieres que

Cual JFrame?

Si quieres que termine tu aplicación al cerrar el JFrame escribe:

JFrame f = new JFrame(...);
f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE);

En tu código al cerrar el JDialog con dispose() la jvm seguirá corriendo, así es como está diseñado. Esto es para que precisamente no mate el proceso si aún está haciendo algo más ( precisamente si es hay un JFrame visible ).

Entonces, tu JDialog se está cerrando bien. Que veas que tu app se queda ahí corriendo, es normal.