Anirvan, Kevin

Thanks for this.

I’m an expert neither in JavaFX nor in OSGi, but I think the basis of the 
JavaFX/OSGi incompatibility is control. To work with OSGi, JavaFX has to 
relinquish control of its startup sequence to OSGi in such a way that 
javafx.application.Application (or its proxy) is instantiated by OSGi and 
submits to OSGi’s bundle/service lifecycle. AN OSGi expert can probably 
formulate this better…

Platform.startup(runnable) /might/ do it. Platform.launch(class) doesn’t 
because the object thereby instantiated is always under the control of JavaFX - 
and thus not of OSGi.

I’m not comfortable using JFXPanel: if I wanted to use Swing I wouldn’t be 
trying to use JavaFX. But thank you for the hint.

Steve

> On 19 Feb 2016, at 16:41, Kevin Rushforth <kevin.rushfo...@oracle.com> wrote:
> 
> And for JDK 9 there is now:
> 
>     Platform.startup(Runnable);
> 
> -- Kevin
> 
> 
> Anirvan Sarkar wrote:
>> 
>> Hi Stephen,
>> 
>> FYI, there is another way of initializing JavaFX runtime. Just use:
>> 
>> new JFXPanel();
>> 
>> It is documented[1] that FX runtime is initialized when the first JFXPanel
>> instance is constructed.
>> 
>> Also JavaFX 9 will provide an official API to start the FX platform [2] [3].
>> 
>> 
>> [1]
>> https://docs.oracle.com/javase/8/javafx/api/javafx/application/Platform.html#runLater-java.lang.Runnable
>>  
>> <https://docs.oracle.com/javase/8/javafx/api/javafx/application/Platform.html#runLater-java.lang.Runnable>-
>> [2] https://bugs.openjdk.java.net/browse/JDK-8090585 
>> <https://bugs.openjdk.java.net/browse/JDK-8090585>
>> [3]
>> http://download.java.net/jdk9/jfxdocs/javafx/application/Platform.html#startup-java.lang.Runnable
>>  
>> <http://download.java.net/jdk9/jfxdocs/javafx/application/Platform.html#startup-java.lang.Runnable>-
>> 
>> 
>> On 18 February 2016 at 20:08, Stephen Winnall <st...@winnall.ch> 
>> <mailto:st...@winnall.ch> wrote:
>> 
>>   
>>> As I understand it, there are two ways of activating JavaFX:
>>> 
>>> 1) sub-class javafx.application.Application or
>>> 2) call javafx.application.Application.launch()
>>> 
>>>     
>> 
>> 
>> 
>>   

Reply via email to