import javafx.animation.KeyFrame; 
import javafx.animation.Timeline; 
import javafx.application.Application; 
import javafx.scene.Scene; 
import javafx.scene.control.Alert; 
import javafx.scene.control.Alert.AlertType; 
import javafx.scene.control.Menu; 
import javafx.scene.control.MenuBar; 
import javafx.scene.input.TransferMode; 
import javafx.scene.layout.VBox; 
import javafx.stage.Stage; 
import javafx.stage.Window; 
import javafx.util.Duration; 

public class DragAndDrop extends Application 
{ 
    public static void main( 
        String[] args) 
    { 
        launch(args); 
    } 

    @Override 
    public void start( 
        Stage primaryStage) 
    { 
        primaryStage.setTitle("Hello World!"); 

        VBox root = new VBox(); 
        final Scene scene = new Scene(root, 300, 250); 
        primaryStage.setScene(scene); 
        registerDragNDrop(scene); 
        attachMenu(root); 
        primaryStage.show(); 
         
    } 
     
    private void attachMenu( 
        VBox vbox) 
    { 
        MenuBar menuBar = new MenuBar(); 
        menuBar.setUseSystemMenuBar(true); 
        Menu menuFile = new Menu("File"); 
        menuBar.getMenus().addAll(menuFile); 
        vbox.getChildren().addAll(menuBar); 
    } 
     
    private void showPopUp( 
        Window parent) 
    { 
        Alert alert = new Alert(AlertType.INFORMATION); 
        alert.initOwner(parent); 
        alert.show(); 
        Timeline timeline = new Timeline(); 
        timeline.getKeyFrames().add(new KeyFrame(Duration.millis(5000), e -> alert.close())); 
        timeline.playFromStart(); 
    } 
     
    private void registerDragNDrop( 
        final Scene scene) 
    { 
        scene.setOnDragOver(event -> 
        { 
            event.acceptTransferModes(TransferMode.COPY_OR_MOVE); 
            event.consume(); 
        }); 

        scene.setOnDragDropped(event -> 
        { 
            showPopUp(scene.getWindow()); 
            event.consume(); 
        }); 
    } 
     
     
} 