你可以做
Application.launch(CubeDemo.class);
但請注意,你只能在JVM的生命週期中執行launch(...)
一次(所以,如果用戶選擇你的菜單項的第二次,它會拋出異常)。
如果您想要在swing應用程序中顯示JavaFX用戶界面,支持的方法是使用JFXPanel
,您可以將其直接放入JFrame
。所以,你會做這樣的事情:
public class CubeDemo {
private final Parent view ;
public CubeDemo() {
view = new BorderPane(); // or any other kind of pane...
// set up ui, register event handlers, etc etc
}
public Parent getView() {
return view ;
}
}
,您仍然可以創建獨立的JavaFX應用程序(如果需要)有:
public class CubeDemoApp extends Application {
@Override
public void start(Stage primaryStage) {
CubeDemo cubeDemo = new CubeDemo();
Scene scene = new Scene(cubeDemo.getView());
primaryStage.setScene(scene);
primaryStage.show();
}
}
,並在您的Swing應用程序,你可以這樣做:
JFXPanel jfxPanel = new JFXPanel();
JFrame frame = new JFrame();
frame.add(jfxPanel);
frame.setSize(...);
Platform.runLater(() -> {
CubeDemo cubeDemo = new CubeDemo();
Scene scene = new Scene(cubeDemo.getView());
jfxPanel.setScene(scene);
});
frame.setVisible(true);