java - 如何将参数传递给 JavaFX 应用程序?

标签 java parameters javafx

我正在像这样运行我的 JavaFX 应用程序:

public class MainEntry {
    public static void main(String[] args) {
        Controller controller = new Controller();
        Application.launch(MainStage.class);
    }
}

MainStage 类扩展了 AppicationApplication.launch 在一个特殊的 FX 线程中启动我的 JavaFX 窗口,但在我的 main 方法中我什至没有我的 MainStage 类的实例。

如何将非字符串参数(在我的例子中是 controller)传递给 MainStage 实例?这是一个有缺陷的设计吗?

最佳答案

从 JavaFX 9 开始,您可以使用公共(public) API“手动”触发 JavaFX 平台的启动。唯一的缺点是 stop 方法的调用方式与通过 Application.launch 启动的应用程序不同:

public class MainEntry {
    public static void main(String[] args) {
        Controller controller = new Controller();

        final MainStage mainStage = new MainStage(controller);
        mainStage.init();

        Platform.startup(() -> {
            // create primary stage
            Stage stage = new Stage();

            mainStage.start(stage);
        });
    }
}

传递给 Platform.startupRunnable 在 JavaFX 应用程序线程上被调用。

关于java - 如何将参数传递给 JavaFX 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24611789/

相关文章:

java - java中多个条件的while循环

java - JButton ImageIcon 不工作

android - startPreview 失败但不是所有设备

entity-framework - EF4.1 代码优先 : Stored Procedure with output parameter

java - 如何在 JavaFX 中为图像的特定部分着色?

Javafx Canvas 在完成之前不会显示

java - 重新初始化 Java 类

c# - wcf方法参数中的反序列化json为空

intellij-idea - JavaFX Fontawesomefx - 主应用程序图标

java - Android 颜色在我的物理设备上不起作用