if (dispatchThread == null) dispatchThread = new EventDispatchThread(this);
  public synchronized void push(EventQueue newEventQueue)  {    if (newEventQueue == null)      throw new NullPointerException ();    /* Make sure we are at the top of the stack because callers can       only get a reference to the one at the bottom using       Toolkit.getDefaultToolkit().getSystemEventQueue() */    if (next != null)      {        next.push (newEventQueue);        return;      }    int i = next_out;    while (i != next_in)      {        newEventQueue.postEvent(queue[i]);        next_out = i;        if (++i == queue.length)          i = 0;      }    next = newEventQueue;    newEventQueue.prev = this;      }