Usable Browser
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
package org.openautonomousconnection.webclient;
|
||||
|
||||
import javafx.application.Platform;
|
||||
import javafx.embed.swing.JFXPanel;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
/**
|
||||
* Initializes the JavaFX Toolkit exactly once for Swing embedding.
|
||||
*/
|
||||
public final class FxBootstrap {
|
||||
|
||||
private static final AtomicBoolean INITIALIZED = new AtomicBoolean(false);
|
||||
|
||||
private FxBootstrap() {
|
||||
// Utility class
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensures JavaFX Toolkit is initialized.
|
||||
* Must be called before any Platform.runLater() usage.
|
||||
*/
|
||||
public static void ensureInitialized() {
|
||||
if (!INITIALIZED.compareAndSet(false, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Creating a JFXPanel initializes the JavaFX toolkit in Swing apps.
|
||||
new JFXPanel();
|
||||
|
||||
// Keep JavaFX runtime alive even if last window closes.
|
||||
Platform.setImplicitExit(false);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user