Createing ContextMenu outside of FX thread

Kevin Rushforth kevin.rushforth at oracle.com
Tue Apr 24 16:22:12 PDT 2012


This is a known bug in JavaFX: http://javafx-jira.kenai.com/browse/RT-17716

-- Kevin



Werner Lehmann wrote:
> Hi,
>
> I just noticed that I cannot create a ContextMenu in the Swing EDT. 
> The following fails in the build method:
>
>     ContextMenu cm = ContextMenuBuilder.create()
>         .items(
>             new MenuItem("item"))
>         .build();
>
> I was under the impression that adding to a scene graph must be done 
> in the FX thread but I am not doing that here. Although the trace says 
> different:
>
>> Exception in thread "AWT-EventQueue-0" 
>> java.lang.IllegalStateException: Not on FX application thread; 
>> currentThread = AWT-EventQueue-0
>>     at com.sun.javafx.tk.Toolkit.checkFxUserThread(Toolkit.java:235)
>>     at 
>> com.sun.javafx.tk.quantum.QuantumToolkit.checkFxUserThread(QuantumToolkit.java:393) 
>>
>>     at javafx.scene.Scene.<init>(Scene.java:265)
>>     at javafx.scene.Scene.<init>(Scene.java:177)
>>     at javafx.stage.PopupWindow.<init>(PopupWindow.java:102)
>>     at javafx.scene.control.PopupControl.<init>(PopupControl.java:101)
>>     at javafx.scene.control.ContextMenu.<init>(ContextMenu.java:129)
>>     at 
>> javafx.scene.control.ContextMenuBuilder.build(ContextMenuBuilder.java:75) 
>>
>
> So, I expected that setting the contextmenu on a button or something 
> which was already part of a scene would require the FX thread context 
> - but not building it. Is ContextMenu special because it is a 
> PopupWindow and not a Node, or is this a misconception on my part?
>
> Werner


More information about the openjfx-dev mailing list