diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/FXFrame.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/FXFrame.java index c0c4bcf6ae4ce475e4d96df90ec837d0c687b97b..3aa53cb4f018b0f724eb830932c05829a6b0e3f2 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/FXFrame.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/FXFrame.java @@ -37,9 +37,6 @@ public abstract class FXFrame<T extends Parent&CloseableControl> extends JDialog init(); } - /** - * Create the JFXPanel that make the link between Swing (IJ) and JavaFX plugin. - */ private void init() { addWindowListener(new WindowAdapter() { @Override diff --git a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/JFXPanel.java b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/JFXPanel.java index 6cc2b833800c0e709d2822f8f783492250187e90..a26bbb678413ce12c2581e44f9c7089d35735ca5 100644 --- a/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/JFXPanel.java +++ b/haas-imagej-client/src/main/java/cz/it4i/fiji/haas/ui/JFXPanel.java @@ -10,6 +10,10 @@ import javafx.application.Platform; import javafx.scene.Parent; import javafx.scene.Scene; +/** + * JFXPanel makes the link between Swing (IJ) and JavaFX plugin. + */ + public class JFXPanel<T extends Parent> extends javafx.embed.swing.JFXPanel { private static final long serialVersionUID = 1L; @@ -17,15 +21,14 @@ public class JFXPanel<T extends Parent> extends javafx.embed.swing.JFXPanel { private static Logger log = LoggerFactory.getLogger(cz.it4i.fiji.haas.ui.JFXPanel.class); private T control; - + public JFXPanel(Supplier<T> fxSupplier) { Platform.setImplicitExit(false); - // The call to runLater() avoid a mix between JavaFX thread and Swing thread. control = fxSupplier.get(); - initFX(); + // The call to runLater() avoid a mix between JavaFX thread and Swing thread. + CloseableControl.runOnFxThread(() -> initFX()); } - private void initFX() { // Init the root layout // Show the scene containing the root layout. @@ -38,7 +41,6 @@ public class JFXPanel<T extends Parent> extends javafx.embed.swing.JFXPanel { this.setMinimumSize(dim); this.setMaximumSize(dim); this.setPreferredSize(dim); - // this.setSize((int) scene.getWidth(), (int) scene.getHeight()); }; public T getControl() {