import javafx.application.Application; import javafx.event.EventHandler; import javafx.scene.Node; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.DatePicker; import javafx.scene.control.TextField; import javafx.scene.input.*; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.stage.Stage; public class Main extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage stage) throws Exception { stage.setScene(createScene()); stage.show(); } private Scene createScene() { DatePicker datePicker = new DatePicker(); initSource(datePicker); TextField textField = new TextField(); initSource(textField); VBox sourceContainer = new VBox(5); sourceContainer.getChildren().add(datePicker); sourceContainer.getChildren().add(textField); Button target = new Button("Target"); initTarget(target); HBox root = new HBox(10); root.getChildren().add(sourceContainer); root.getChildren().add(target); return new Scene(root, 400, 300); } private void initTarget(final Node node) { // node.setOnDragEntered(new EventHandler() { // public void handle(DragEvent event) { // // } // }); node.setOnDragOver(new EventHandler() { @Override public void handle(DragEvent event) { Dragboard db = event.getDragboard(); event.acceptTransferModes(TransferMode.ANY); System.out.println("DragOver"); } }); node.setOnDragDropped(new EventHandler() { @Override public void handle(DragEvent event) { System.out.println("DragDropped"); Dragboard db = event.getDragboard(); event.setDropCompleted(true); } }); } private void initSource(final Node node) { node.setOnDragDetected(new EventHandler() { @Override public void handle(MouseEvent event) { Dragboard db = node.startDragAndDrop(TransferMode.COPY); if (db == null) { return; } ClipboardContent content = new ClipboardContent(); content.putString("STRING"); db.setContent(content); event.consume(); } }); node.setOnDragDone(new EventHandler() { @Override public void handle(DragEvent event) { System.out.println("DragDone"); } }); } }