void (@NotNull Point actualPoint, @NotNull HintHint hintHint) { myIsRealPopup = true; if (hintHint.getPreferredPosition() == Balloon.Position.atLeft) { int width = myComponent.getPreferredSize().width; actualPoint.translate(-width, 0); } JComponent actualComponent = new OpaquePanel(new BorderLayout()); actualComponent.add(myComponent, BorderLayout.CENTER); if (isAwtTooltip()) { actualComponent.setBackground(hintHint.getTextBackground()); actualComponent.validate(); } myPopup = JBPopupFactory.getInstance().createComponentPopupBuilder(actualComponent, myFocusRequestor) .setRequestFocus(myFocusRequestor != null || hintHint.isRequestFocus()) .setFocusable(myFocusRequestor != null || hintHint.isRequestFocus()) .setResizable(myResizable) .setMovable(myTitle != null) .setTitle(myTitle) .setModalContext(false) .setShowShadow(isRealPopup() && !isForceHideShadow()) .setCancelKeyEnabled(false) .setCancelOnClickOutside(myCancelOnClickOutside) .setBelongsToGlobalPopupStack(myBelongsToGlobalPopupStack) .setCancelCallback(() -> { onPopupCancel(); return true; }) .setCancelOnOtherWindowOpen(myCancelOnOtherWindowOpen) .createPopup(); beforeShow(); myPopup.show(new RelativePoint(myParentComponent, new Point(actualPoint.x, actualPoint.y))); }