void (@NlsContexts.PopupContent @Nullable String message, boolean error, @NotNull JComponent component) { ApplicationManager.getApplication().invokeLater(() -> { if (isDisposed()) return; if (myBalloon != null) myBalloon.hide(); if (message == null) return; myBalloon = JBPopupFactory.getInstance() .createHtmlTextBalloonBuilder(message, error ? MessageType.ERROR : MessageType.WARNING, null) .setHideOnFrameResize(false) .createBalloon(); myBalloon.show(new RelativePoint(component, new Point(component.getWidth() / 2, component.getHeight())), Balloon.Position.below); Disposer.register(myDisposable, myBalloon); }, ModalityState.stateForComponent(component)); }