我们应该避免JFXPanel重新创建,当Platform.setImplicitExit(false)时,要避免JavaFX资源泄漏

Che*_*eng 5 java swing javafx

目前,我正在将JavaFX集成到Swing中.

Platform.setImplicitExit(false)由于在Swing中处理JFXPanel时出现JavaFX IllegalStateException,我需要使用

public class MainFrame extends javax.swing.JFrame {
    private void formWindowClosed(java.awt.event.WindowEvent evt) {
        Platform.exit();
    }

    public static void main(String args[]) {
        Platform.setImplicitExit(false);
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道,我是否应该避免重新创作JFXPanel呢?每次我想展示JDialog哪个拥有JFXPanel?为了避免可能的JavaFX资源泄漏,我应该使用

public class SimpleSwingBrowser extends JDialog { 
    // Avoid JFXPanel re-creation.
    private static final JFXPanel jfxPanel = new JFXPanel();
}
Run Code Online (Sandbox Code Playgroud)

要么

public class SimpleSwingBrowser extends JDialog { 
    private final JFXPanel jfxPanel = new JFXPanel();
}
Run Code Online (Sandbox Code Playgroud)