Code:
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

import org.apache.commons.io.FileUtils;

/**
 *
 * @author user
 */
public class TestFrame extends javax.swing.JFrame {

    /** Creates new form TestFrame */
    public TestFrame() {
        initComponents();
		  CloseFrame.setSize(300,150);
		  CloseLabel.setText("Bitte Warten");
    }

	 public void DelTmpAction(){

		 try {
			 File TmpDir = new File("C:/temp");
			 FileUtils.cleanDirectory(TmpDir);

			 System.out.println("window close");

		 }
		 catch (IOException ex) {
		 	Logger.getLogger(MainForm.class.getName()).log(Level.SEVERE, null, ex);
		 }
	 }


    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
   // <editor-fold defaultstate="collapsed" desc="Generated Code">
   private void initComponents() {

      CloseFrame = new javax.swing.JFrame();
      CloseLabel = new javax.swing.JLabel();

      CloseLabel.setText("jLabel1");

      javax.swing.GroupLayout CloseFrameLayout = new javax.swing.GroupLayout(CloseFrame.getContentPane());
      CloseFrame.getContentPane().setLayout(CloseFrameLayout);
      CloseFrameLayout.setHorizontalGroup(
         CloseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
         .addGap(0, 400, Short.MAX_VALUE)
         .addGroup(CloseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(CloseFrameLayout.createSequentialGroup()
               .addGap(0, 0, Short.MAX_VALUE)
               .addComponent(CloseLabel)
               .addGap(0, 0, Short.MAX_VALUE)))
      );
      CloseFrameLayout.setVerticalGroup(
         CloseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
         .addGap(0, 300, Short.MAX_VALUE)
         .addGroup(CloseFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(CloseFrameLayout.createSequentialGroup()
               .addGap(0, 0, Short.MAX_VALUE)
               .addComponent(CloseLabel)
               .addGap(0, 0, Short.MAX_VALUE)))
      );

      setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
      addWindowListener(new java.awt.event.WindowAdapter() {
         public void windowClosing(java.awt.event.WindowEvent evt) {
            formWindowClosing(evt);
         }
      });

      javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
      getContentPane().setLayout(layout);
      layout.setHorizontalGroup(
         layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
         .addGap(0, 400, Short.MAX_VALUE)
      );
      layout.setVerticalGroup(
         layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
         .addGap(0, 300, Short.MAX_VALUE)
      );

      pack();
   }// </editor-fold>

	 private void formWindowClosing(java.awt.event.WindowEvent evt) {
		 // TODO add your handling code here:
		 CloseFrame.setVisible(true);
		 DelTmpAction();
	 }

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new TestFrame().setVisible(true);
            }
        });
    }

   // Variables declaration - do not modify
   private javax.swing.JFrame CloseFrame;
   private javax.swing.JLabel CloseLabel;
   // End of variables declaration

}

folgende Beobachtung:

das fenster wird nicht richtig gezeichnet, d.h. nur die umrisse ohne inhalt.
Wobei das fenster an sich nen label hat.
(Hab mir das testweise grad mal beim start anzeigen lassen)

Ferner wird das dann wie gewünscht gelöscht und beendet.

ein invoke later brachte leider auch nichts.