if (this.getMouseListeners().length == 0)
if (getMouseListeners().length == 0 && getMouseMotionListeners().length == 0)
  Component findComponentForMouseEventAt(int x, int y)  {    synchronized (getTreeLock())      {        if (!contains(x, y))          return null;        for (int i = 0; i < ncomponents; ++i)          {            // Ignore invisible children...            if (!component[i].isVisible())              continue;            int x2 = x - component[i].x;            int y2 = y - component[i].y;            // We don't do the contains() check right away because            // findComponentAt would redundantly do it first thing.            if (component[i] instanceof Container)              {                Container k = (Container) component[i];                Component r = k.findComponentForMouseEventAt(x2, y2);                if (r != null)                  return r;              }            else if (component[i].contains(x2, y2))              return component[i];          }        //don't return transparent components with no MouseListeners        if (this.getMouseListeners().length == 0)          return null;        return this;      }  }