You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@felix.apache.org by Arjay Sitoy <si...@gmail.com> on 2015/02/04 13:56:59 UTC
iPOJO in JavaFX Application
I am doing a Javafx application in Apache Felix along with some experiments
using iPOJO.
First is I called the Application.launch() method in a different class and
then start an another class containing the iPOJO @Requires like this:
public class JavafxApp extends Application {
@Override
public void start(Stage primaryStage){
/* Do nothing here because I thought I can initialize JavaFX
in a different class */
}
public void start(){
Platform.runLater(() -> {
launch(JavafxApplication.class);
});
}}
public class MyApplication {
@Requires
LibraryClass class;
@Validate
public void start(){
JavafxApp.start();
class.someMethod();
}
}
This implementation throws this exception, java.lang.IllegalStateException:
Toolkit not initialized but the iPOJO located the implementation class of
the LibraryClass interface.
After some research I found out that the application should be inside the
class that extends the javafx.application.Application so I did some
restructuring.
public class JavafxApp extends Application {
@Requires
LibraryClass class;
@Override
public void start(Stage primaryStage){
class.someMethod();
}
@Validate
public void start(){
launch(JavafxApp.class);
}
}
Now the iPOJO throws a RuntimeException and the LibraryClass becomes null and
the application throws a NullPointerException.
My questions are:
- Is it possible to use iPOJO in this situation?
- If it is what is the right way to use iPOJO in a JavaFX application?
Thanks in advance! :D
P.S.
I also posted the same question in *StackOverflow*
http://stackoverflow.com/questions/28289948/using-ipojo-in-a-javafx-application
Re: iPOJO in JavaFX Application
Posted by Paul Bakker <pa...@luminis.eu>.
Hi Arjay,
I'm not very familiar with iPojo, but I did recently do some JavaFX in
OSGi. One approach that works reasonably well is using static
initialisation using a JFXPanel:
https://github.com/sandermak/carprov/blob/master/carprov.dashboard/src/carprov/dashboard/Dashboard.java#L39
.
I've also written a blog with a slightly different approach:
http://paulonjava.blogspot.nl/2014/11/making-javafx-better-with-osgi.html
Cheers,
Paul
On Wed Feb 04 2015 at 2:29:09 PM Arjay Sitoy <si...@gmail.com> wrote:
> I am doing a Javafx application in Apache Felix along with some experiments
> using iPOJO.
>
> First is I called the Application.launch() method in a different class and
> then start an another class containing the iPOJO @Requires like this:
>
> public class JavafxApp extends Application {
> @Override
> public void start(Stage primaryStage){
> /* Do nothing here because I thought I can initialize JavaFX
> in a different class */
> }
>
> public void start(){
> Platform.runLater(() -> {
> launch(JavafxApplication.class);
> });
> }}
> public class MyApplication {
> @Requires
> LibraryClass class;
>
> @Validate
> public void start(){
> JavafxApp.start();
> class.someMethod();
> }
> }
>
> This implementation throws this exception, java.lang.
> IllegalStateException:
> Toolkit not initialized but the iPOJO located the implementation class of
> the LibraryClass interface.
>
> After some research I found out that the application should be inside the
> class that extends the javafx.application.Application so I did some
> restructuring.
>
> public class JavafxApp extends Application {
>
> @Requires
> LibraryClass class;
>
> @Override
> public void start(Stage primaryStage){
> class.someMethod();
> }
>
> @Validate
> public void start(){
> launch(JavafxApp.class);
> }
> }
>
> Now the iPOJO throws a RuntimeException and the LibraryClass becomes null
> and
> the application throws a NullPointerException.
>
> My questions are:
>
> - Is it possible to use iPOJO in this situation?
> - If it is what is the right way to use iPOJO in a JavaFX application?
>
> Thanks in advance! :D
>
> P.S.
>
> I also posted the same question in *StackOverflow*
>
> http://stackoverflow.com/questions/28289948/using-
> ipojo-in-a-javafx-application
>