protected void showAtMouse(int x, int y)
  {
      if (mainParentComp == null)
          return;  // Not showing

      boxX = OFFSET_X + x;
      boxY = OFFSET_Y + y;

      // Remember for next time
      mousePosAtWinShowX = x - parentX;
      mousePosAtWinShowY = y - parentY;

      // Goals:
      // - Don't have it extend off the visible area
      // - Mouse pointer tip should not be within our bounding box (flickers)

      if ( ((x >= boxX) && (x < (boxX + boxW)))
          || (mainParentComp.getSize().width <= ( boxX + boxW )) )
      {
          // Try to float it to left of mouse pointer
          boxX = x - boxW - OFFSET_X;
          if (boxX < 0)
          {
              // Not enough room, just place flush against right-hand side
              boxX = mainParentComp.getSize().width - boxW;
          }
      }
      if ( ((y >= boxY) && (y < (boxY + boxH)))
          || ((mainParentComp.getSize().height - mainParentComp.getInsets().bottom)
               <= ( boxY + boxH )) )
      {
          // Try to float it above mouse pointer
          boxY = y - boxH - OFFSET_Y;
          if (boxY < 0)
          {
              // Not enough room, just place flush against top
              boxY = 0;
          }
      }

      setLocation(boxX, boxY);
  }