Search code examples
javaswingjavafxillegalstateexceptiondisposing

JavaFX IllegalStateException when disposing JFXPanel in Swing


I've just come across an oddity with JavaFX and Swing.

When disposing a JavaFX Panel that had been added to a JFrame or JPanel, re-adding a new JFXPanel will throw an IllegalStateException: "Platform.exit has been called".

In my case this has happened after I removed some JPanels with JFXPanels inside and then tried to re-add them.


Solution

  • Luckily I found a solution in an Oracle Forum. Link: https://kr.forums.oracle.com/forums/thread.jspa?threadID=2393986

    In JavaFX 2.2 add the following line in the Main class:

    Platform.setImplicitExit(false);
    

    This has done the trick in my application and will hopefully help some of you out there.