Point parentLocation = nativeContainer.getLocationOnScreen(); Point childLocation = mouseEventTarget.getLocationOnScreen(); me.translatePoint(parentLocation.x - childLocation.x, parentLocation.y - childLocation.y);  Component oldSource = (Component) me.getSource (); me.setSource (mouseEventTarget); mouseEventTarget.dispatchEvent (me); me.setSource (oldSource);
MouseEvent newEvt = SwingUtilities.convertMouseEvent(nativeContainer, me, mouseEventTarget); mouseEventTarget.dispatchEvent(newEvt);
  boolean handleEvent (AWTEvent e)  {    if ((eventMask & e.getID ()) == 0)      return false;    if (e instanceof MouseEvent)      {        MouseEvent me = (MouseEvent) e;        acquireComponentForMouseEvent (me);        // Avoid dispatching an ENTERED event twice        if (mouseEventTarget != null            && e.getID() != MouseEvent.MOUSE_ENTERED)          {            // Calculate point translation for the event target.            // We use absolute location on screen rather than relative            // location because the event target might be a nested child.            Point parentLocation = nativeContainer.getLocationOnScreen();            Point childLocation = mouseEventTarget.getLocationOnScreen();            me.translatePoint(parentLocation.x - childLocation.x,                              parentLocation.y - childLocation.y);            Component oldSource = (Component) me.getSource ();            me.setSource (mouseEventTarget);            mouseEventTarget.dispatchEvent (me);            me.setSource (oldSource);          }      }    else if (e instanceof KeyEvent && focus != null)      {        focus.processKeyEvent ((KeyEvent) e);      }          return e.isConsumed();  }