Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8155897

DnD from JavaFX to SwingNode throws exception on Linux

XMLWordPrintable

      FULL PRODUCT VERSION :
      JDK 1.8.0_92


      ADDITIONAL OS VERSION INFORMATION :
      Linux ubuntu1410adminuser 3.19.0-58-generic #64-Ubuntu SMP Thu Mar 17 18:30:04 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux


      A DESCRIPTION OF THE PROBLEM :
      If I drag a text from a JavaFX text area to a swing text area that is embedded with the class SwingNode, the following exception is thrown:

      Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: Key already associated with a running event loop: javafx.embed.swing.FXDnD@496b052d
      at com.sun.javafx.tk.quantum.QuantumToolkit.enterNestedEventLoop(QuantumToolkit.java:577)
      at javafx.embed.swing.SwingFXUtils.runOnEDTAndWait(SwingFXUtils.java:307)
      at javafx.embed.swing.FXDnD$FXDropTargetContextPeer.postDropTargetEvent(FXDnD.java:478)
      at javafx.embed.swing.FXDnD$FXDropTargetContextPeer.access$1500(FXDnD.java:430)
      at javafx.embed.swing.FXDnD.lambda$new$9(FXDnD.java:395)
      at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
      at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
      at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
      at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
      at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
      at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
      at javafx.event.Event.fireEvent(Event.java:198)
      at javafx.scene.Scene$DnDGesture.fireEvent(Scene.java:2933)
      at javafx.scene.Scene$DnDGesture.processTargetEnterOver(Scene.java:3105)
      at javafx.scene.Scene$DnDGesture.access$6100(Scene.java:2909)
      at javafx.scene.Scene$DropTargetListener.dragOver(Scene.java:2830)
      at com.sun.javafx.tk.quantum.GlassSceneDnDEventHandler.lambda$handleDragOver$310(GlassSceneDnDEventHandler.java:110)
      at java.security.AccessController.doPrivileged(Native Method)
      at com.sun.javafx.tk.quantum.GlassSceneDnDEventHandler.handleDragOver(GlassSceneDnDEventHandler.java:107)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleDragOver$364(GlassViewEventHandler.java:723)
      at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleDragOver(GlassViewEventHandler.java:722)
      at com.sun.glass.ui.View.handleDragOver(View.java:697)
      at com.sun.glass.ui.View.notifyDragOver(View.java:1025)
      at com.sun.glass.ui.gtk.GtkApplication.enterNestedEventLoopImpl(Native Method)
      at com.sun.glass.ui.gtk.GtkApplication._enterNestedEventLoop(GtkApplication.java:211)
      at com.sun.glass.ui.Application.enterNestedEventLoop(Application.java:511)
      at com.sun.glass.ui.EventLoop.enter(EventLoop.java:107)
      at com.sun.javafx.tk.quantum.QuantumToolkit.enterNestedEventLoop(QuantumToolkit.java:583)
      at javafx.embed.swing.SwingFXUtils.runOnEDTAndWait(SwingFXUtils.java:307)
      at javafx.embed.swing.FXDnD$FXDropTargetContextPeer.postDropTargetEvent(FXDnD.java:478)
      at javafx.embed.swing.FXDnD$FXDropTargetContextPeer.access$1500(FXDnD.java:430)
      at javafx.embed.swing.FXDnD.lambda$new$10(FXDnD.java:411)
      at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
      at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
      at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
      at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
      at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
      at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
      at javafx.event.Event.fireEvent(Event.java:198)
      at javafx.scene.Scene$DnDGesture.fireEvent(Scene.java:2933)
      at javafx.scene.Scene$DnDGesture.processTargetDrop(Scene.java:3159)
      at javafx.scene.Scene$DnDGesture.access$6400(Scene.java:2909)
      at javafx.scene.Scene$DropTargetListener.drop(Scene.java:2873)
      at com.sun.javafx.tk.quantum.GlassSceneDnDEventHandler.lambda$handleDragDrop$309(GlassSceneDnDEventHandler.java:95)
      at java.security.AccessController.doPrivileged(Native Method)
      at com.sun.javafx.tk.quantum.GlassSceneDnDEventHandler.handleDragDrop(GlassSceneDnDEventHandler.java:92)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleDragDrop$363(GlassViewEventHandler.java:700)
      at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleDragDrop(GlassViewEventHandler.java:699)
      at com.sun.glass.ui.View.handleDragDrop(View.java:712)
      at com.sun.glass.ui.View.notifyDragDrop(View.java:1037)
      at com.sun.glass.ui.gtk.GtkDnDClipboard.pushToSystemImpl(Native Method)
      at com.sun.glass.ui.gtk.GtkDnDClipboard.pushToSystem(GtkDnDClipboard.java:39)
      at com.sun.glass.ui.SystemClipboard.flush(SystemClipboard.java:51)
      at com.sun.glass.ui.ClipboardAssistance.flush(ClipboardAssistance.java:59)
      at com.sun.javafx.tk.quantum.QuantumClipboard.flush(QuantumClipboard.java:274)
      at com.sun.javafx.tk.quantum.QuantumToolkit.startDrag(QuantumToolkit.java:1224)
      at javafx.scene.Scene$DnDGesture.dragDetectedProcessed(Scene.java:2953)
      at javafx.scene.Scene$DnDGesture.process(Scene.java:3022)
      at javafx.scene.Scene$DnDGesture.access$8200(Scene.java:2909)
      at javafx.scene.Scene$MouseHandler.process(Scene.java:3773)
      at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485)
      at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
      at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:380)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:294)
      at java.security.AccessController.doPrivileged(Native Method)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$354(GlassViewEventHandler.java:416)
      at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:415)
      at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
      at com.sun.glass.ui.View.notifyMouse(View.java:937)
      at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
      at com.sun.glass.ui.gtk.GtkApplication.lambda$null$49(GtkApplication.java:139)
      at java.lang.Thread.run(Thread.java:745)
      Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
      at javax.swing.TransferHandler$DropHandler.handleDrag(TransferHandler.java:1458)
      at javax.swing.TransferHandler$DropHandler.dragOver(TransferHandler.java:1496)
      at java.awt.dnd.DropTarget.dragOver(DropTarget.java:382)
      at javax.swing.TransferHandler$SwingDropTarget.dragOver(TransferHandler.java:1250)
      at javafx.embed.swing.FXDnD$FXDropTargetContextPeer.lambda$postDropTargetEvent$11(FXDnD.java:503)
      at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
      at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
      at java.awt.EventQueue.access$500(EventQueue.java:97)
      at java.awt.EventQueue$3.run(EventQueue.java:709)
      at java.awt.EventQueue$3.run(EventQueue.java:703)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
      at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
      at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
      at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
      at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
      at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)


      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      - start the sample code
      - drag the text of the JavaFX text area and
      - drop it on the swing text area

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      the dropped text should be inserted in the swing text area
      ACTUAL -
      the application crashes



      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: Key already associated with a running event loop: javafx.embed.swing.FXDnD@496b052d
      at com.sun.javafx.tk.quantum.QuantumToolkit.enterNestedEventLoop(QuantumToolkit.java:577)
      at javafx.embed.swing.SwingFXUtils.runOnEDTAndWait(SwingFXUtils.java:307)
      at javafx.embed.swing.FXDnD$FXDropTargetContextPeer.postDropTargetEvent(FXDnD.java:478)
      at javafx.embed.swing.FXDnD$FXDropTargetContextPeer.access$1500(FXDnD.java:430)
      at javafx.embed.swing.FXDnD.lambda$new$9(FXDnD.java:395)
      at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
      at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
      at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
      at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
      at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
      at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
      at javafx.event.Event.fireEvent(Event.java:198)
      at javafx.scene.Scene$DnDGesture.fireEvent(Scene.java:2933)
      at javafx.scene.Scene$DnDGesture.processTargetEnterOver(Scene.java:3105)
      at javafx.scene.Scene$DnDGesture.access$6100(Scene.java:2909)
      at javafx.scene.Scene$DropTargetListener.dragOver(Scene.java:2830)
      at com.sun.javafx.tk.quantum.GlassSceneDnDEventHandler.lambda$handleDragOver$310(GlassSceneDnDEventHandler.java:110)
      at java.security.AccessController.doPrivileged(Native Method)
      at com.sun.javafx.tk.quantum.GlassSceneDnDEventHandler.handleDragOver(GlassSceneDnDEventHandler.java:107)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleDragOver$364(GlassViewEventHandler.java:723)
      at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleDragOver(GlassViewEventHandler.java:722)
      at com.sun.glass.ui.View.handleDragOver(View.java:697)
      at com.sun.glass.ui.View.notifyDragOver(View.java:1025)
      at com.sun.glass.ui.gtk.GtkApplication.enterNestedEventLoopImpl(Native Method)
      at com.sun.glass.ui.gtk.GtkApplication._enterNestedEventLoop(GtkApplication.java:211)
      at com.sun.glass.ui.Application.enterNestedEventLoop(Application.java:511)
      at com.sun.glass.ui.EventLoop.enter(EventLoop.java:107)
      at com.sun.javafx.tk.quantum.QuantumToolkit.enterNestedEventLoop(QuantumToolkit.java:583)
      at javafx.embed.swing.SwingFXUtils.runOnEDTAndWait(SwingFXUtils.java:307)
      at javafx.embed.swing.FXDnD$FXDropTargetContextPeer.postDropTargetEvent(FXDnD.java:478)
      at javafx.embed.swing.FXDnD$FXDropTargetContextPeer.access$1500(FXDnD.java:430)
      at javafx.embed.swing.FXDnD.lambda$new$10(FXDnD.java:411)
      at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
      at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
      at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
      at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
      at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
      at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
      at javafx.event.Event.fireEvent(Event.java:198)
      at javafx.scene.Scene$DnDGesture.fireEvent(Scene.java:2933)
      at javafx.scene.Scene$DnDGesture.processTargetDrop(Scene.java:3159)
      at javafx.scene.Scene$DnDGesture.access$6400(Scene.java:2909)
      at javafx.scene.Scene$DropTargetListener.drop(Scene.java:2873)
      at com.sun.javafx.tk.quantum.GlassSceneDnDEventHandler.lambda$handleDragDrop$309(GlassSceneDnDEventHandler.java:95)
      at java.security.AccessController.doPrivileged(Native Method)
      at com.sun.javafx.tk.quantum.GlassSceneDnDEventHandler.handleDragDrop(GlassSceneDnDEventHandler.java:92)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleDragDrop$363(GlassViewEventHandler.java:700)
      at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleDragDrop(GlassViewEventHandler.java:699)
      at com.sun.glass.ui.View.handleDragDrop(View.java:712)
      at com.sun.glass.ui.View.notifyDragDrop(View.java:1037)
      at com.sun.glass.ui.gtk.GtkDnDClipboard.pushToSystemImpl(Native Method)
      at com.sun.glass.ui.gtk.GtkDnDClipboard.pushToSystem(GtkDnDClipboard.java:39)
      at com.sun.glass.ui.SystemClipboard.flush(SystemClipboard.java:51)
      at com.sun.glass.ui.ClipboardAssistance.flush(ClipboardAssistance.java:59)
      at com.sun.javafx.tk.quantum.QuantumClipboard.flush(QuantumClipboard.java:274)
      at com.sun.javafx.tk.quantum.QuantumToolkit.startDrag(QuantumToolkit.java:1224)
      at javafx.scene.Scene$DnDGesture.dragDetectedProcessed(Scene.java:2953)
      at javafx.scene.Scene$DnDGesture.process(Scene.java:3022)
      at javafx.scene.Scene$DnDGesture.access$8200(Scene.java:2909)
      at javafx.scene.Scene$MouseHandler.process(Scene.java:3773)
      at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485)
      at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
      at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:380)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:294)
      at java.security.AccessController.doPrivileged(Native Method)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$354(GlassViewEventHandler.java:416)
      at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:415)
      at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
      at com.sun.glass.ui.View.notifyMouse(View.java:937)
      at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
      at com.sun.glass.ui.gtk.GtkApplication.lambda$null$49(GtkApplication.java:139)
      at java.lang.Thread.run(Thread.java:745)
      Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
      at javax.swing.TransferHandler$DropHandler.handleDrag(TransferHandler.java:1458)
      at javax.swing.TransferHandler$DropHandler.dragOver(TransferHandler.java:1496)
      at java.awt.dnd.DropTarget.dragOver(DropTarget.java:382)
      at javax.swing.TransferHandler$SwingDropTarget.dragOver(TransferHandler.java:1250)
      at javafx.embed.swing.FXDnD$FXDropTargetContextPeer.lambda$postDropTargetEvent$11(FXDnD.java:503)
      at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
      at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
      at java.awt.EventQueue.access$500(EventQueue.java:97)
      at java.awt.EventQueue$3.run(EventQueue.java:709)
      at java.awt.EventQueue$3.run(EventQueue.java:703)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
      at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
      at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
      at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
      at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
      at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
      at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

      REPRODUCIBILITY :
      This bug can be reproduced often.

      ---------- BEGIN SOURCE ----------
      import javafx.application.Application;
      import javafx.embed.swing.SwingNode;
      import javafx.scene.Scene;
      import javafx.scene.control.TextArea;
      import javafx.scene.input.ClipboardContent;
      import javafx.scene.input.Dragboard;
      import javafx.scene.input.TransferMode;
      import javafx.scene.layout.BorderPane;
      import javafx.stage.Stage;

      import javax.swing.*;
      import java.awt.*;

      public class TestDnD extends Application {
        @Override
        public void start(Stage stage) {
          SwingNode swingNode = new SwingNode();
          createSwingContent(swingNode);

          TextArea fxTextArea = new TextArea("Text to drag.");
          fxTextArea.setOnDragDetected(event -> {
            ClipboardContent content = new ClipboardContent();
            content.putString(fxTextArea.getText());
            Dragboard dragboard = fxTextArea.startDragAndDrop(TransferMode.COPY);
            dragboard.setContent(content);
            event.consume();
          });

          BorderPane pane = new BorderPane();
          pane.setTop(swingNode);
          pane.setCenter(fxTextArea);

          Scene scene = new Scene(pane, 300, 200);
          stage.setScene(scene);
          stage.setTitle("DnD Test");
          stage.show();
        }

        private void createSwingContent(final SwingNode swingNode) {
          SwingUtilities.invokeLater(() -> {
            JTextArea jTextArea = new JTextArea("Drop here!");
            jTextArea.setPreferredSize(new Dimension(100, 100));
            swingNode.setContent(jTextArea);
          });
        }
      }

      ---------- END SOURCE ----------

            Unassigned Unassigned
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: