import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.MenuButton;
import javafx.scene.control.MenuItem;
import javafx.scene.control.Tooltip;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;

public class TooltipIssue extends Application {

    @Override
    public void start(final Stage primaryStage) throws Exception {
        var scene = new Scene(new StackPane(), 400, 300);
        primaryStage.setScene(scene);
        primaryStage.show();

        final Alert alert = new Alert(AlertType.INFORMATION);
        alert.initOwner(primaryStage);
        alert.getDialogPane().setContent(new StackPane(createMenuButton()));
        alert.show();
    }

    private MenuButton createMenuButton() {
        final var menuButton = new MenuButton();
        for (int i = 0; i < 10; ++i) {
            menuButton.getItems().add(new MenuItem("Item " + i));
        }
        menuButton.setOnMouseClicked(event -> {
            for (int i = 0; i < menuButton.getItems().size(); ++i) {
                Tooltip tooltip = new Tooltip("Tooltip " + i);
                tooltip.setShowDelay(Duration.millis(200));
                tooltip.setShowDuration(Duration.INDEFINITE);
                Tooltip.install(menuButton.getItems().get(i).getStyleableNode(), tooltip);
            }
        });
        return menuButton;
    }
}
