code: public final void show() {
  		if (firstTime) {
  			firstTime = false;
  			if (SwingUtilities.isEventDispatchThread()) {
  				showIntern();
  			} else {
  				try {
  					SwingUtilities.invokeAndWait(new Runnable() {
  						public void run() {
  							showIntern();
  						}
  					});
  				} catch (final Exception ex) {
  					ignore();
  				}
  			}
  		} else {
  			throw new IllegalStateException("This object cannot be reused!");
  		}
  	}
docs: Show the monitor dialog.If called outside the EDT this method will switch
  to the UI thread using
  <code>SwingUtilities.invokeAndWait(Runnable)</code>.