ciao!
si nel frattempo ho fatto un pò di cambiamenti:
codice:
public class LoadingDialog extends SwingWorker<Object, Object> {

    private JDialog jd;

    public LoadingDialog(JFrame frame) {
        jd = new JDialog(frame, true);
        jd.add(BorderLayout.CENTER, new JLabel("Progress..."));
        jd.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
        jd.setSize(300, 75);
        jd.setResizable(false);
        jd.setLocationRelativeTo(frame);
    }

    @Override
    protected Object doInBackground() throws Exception {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                jd.setVisible(true);
            }
        });
        return null;
    }

    @Override
    protected void done() {
        jd.setVisible(false);
    }
}
poi nel JFrame:
codice:
LoadingDialog ld = new LoadingDialog(this);
ld.execute();
// DO STUFF
solo che non funziona molto bene.
nel senso che prima fa le operazioni, e poi mi mostra il dialog!