SwingUtilities.invokeLater(new Runnable() { public void run() { drainEvents(); } });
SwingUtilities.invokeLater(drainer);
  private void queueEvent()  {    synchronized (queueLock)      {        queue++;        if (queue == 1)	  SwingUtilities.invokeLater(new Runnable()	      {		public void run()		{		  drainEvents();		}	      });      }  }