package bugs.contextmenu.RT25529; import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.ContextMenu; import javafx.scene.control.MenuItem; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.layout.FlowPane; import javafx.stage.Stage; public class ContextMenuStaysInForegroundWhenDebugging extends Application { public static void main(String[] args) { launch(args); } private static class DoSomething implements EventHandler { @Override public void handle(ActionEvent actionEvent) { //Put a breakpoint in line 31 System.out.println("Hello Debugger"); } } @Override public void start(Stage stage) throws Exception { ContextMenu contextMenu = createContextMenu(new DoSomething()); TableView table = createTable(contextMenu); FlowPane pane = new FlowPane(); pane.getChildren().add(table); stage.setScene(new Scene(pane)); stage.show(); } private TableView createTable(ContextMenu contextMenu) { TableView table = new TableView<>(); table.setContextMenu(contextMenu); table.getColumns().add(new TableColumn()); return table; } private ContextMenu createContextMenu(EventHandler contextMenuAction) { ContextMenu contextMenu = new ContextMenu(); MenuItem item = new MenuItem("Debug this action to see the issue"); item.setOnAction(contextMenuAction); contextMenu.getItems().add(item); return contextMenu; } }