 <p>As @jewelsea suggests, setting the modality and owner for the alert box will assure that the alert will appear over the stage, even if the stage is moved.</p> <pre><code>import javafx.application.Application; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.scene.Scene; import javafx.scene.control.Alert; import javafx.scene.control.Button; import javafx.scene.control.ButtonType; import javafx.scene.control.ListView; import javafx.scene.layout.BorderPane; import javafx.stage.Modality; import javafx.stage.Stage; public class DeleteAlertDemo extends Application { Stage owner; ObservableList&lt;String&gt; observablePlantList; ListView&lt;String&gt; plantList; protected void handleDeleteButtonClick(ActionEvent event) { String item = plantList.getSelectionModel().getSelectedItem(); Alert alertBox = new Alert(Alert.AlertType.CONFIRMATION, "Confirm Delete", ButtonType.OK, ButtonType.CANCEL); alertBox.setContentText("Are you sure you want to delete this " + item.toLowerCase() + "?"); alertBox.initModality(Modality.APPLICATION_MODAL); /* *** */ alertBox.initOwner(owner); /* *** */ alertBox.showAndWait(); if (alertBox.getResult() == ButtonType.OK) { int selectedPlant = plantList.getSelectionModel().getSelectedIndex(); observablePlantList.remove(selectedPlant); } else { alertBox.close(); } } @Override public void start(Stage primaryStage) { owner = primaryStage; /* *** */ Button deleteBtn = new Button(); deleteBtn.setText("Delete"); deleteBtn.setOnAction(this::handleDeleteButtonClick); observablePlantList = FXCollections.observableArrayList("Begonia", "Peony", "Rose", "Lilly", "Chrysanthemum", "Hosta"); plantList = new ListView&lt;&gt;(observablePlantList); plantList.getSelectionModel().select(0); BorderPane root = new BorderPane(); root.setCenter(plantList); root.setRight(deleteBtn); Scene scene = new Scene(root, 300, 250); primaryStage.setTitle("Delete Alert Demo"); primaryStage.setScene(scene); primaryStage.show(); } /** * @param args the command line arguments */ public static void main(String[] args) { launch(args); } } </code></pre>