-
Bug
-
Resolution: Unresolved
-
P4
-
8u92
-
x86_64
-
linux_ubuntu
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 ----------
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 ----------