protected ProgressDialog createProgressDialog(Window parent, final BackgroundMatcher worker) { final ProgressDialog progressDialog = new ProgressDialog(parent, worker); // configure dialog progressDialog.setTitle("Matching..."); progressDialog.setNote("Processing..."); progressDialog.setIcon((Icon) getValue(SMALL_ICON)); // close progress dialog when worker is finished worker.addPropertyChangeListener( new SwingWorkerPropertyChangeAdapter() { @Override protected void done(PropertyChangeEvent evt) { progressDialog.close(); } }); return progressDialog; }