在普通Java应用程序中创建JavaFX主阶段

我有一个启动器和一个
JavaFX类.启动器创建一个名为JavaFXApplication1的类. JavaFXApplication包含整个JavaFX代码(在这种情况下只是一个小例子)并且应该设置一个具有一个主要阶段的窗口.

启动器具有静态主入口点 – 但我读到JavaFX并不真正使用此入口点.这解释了我的控制台输出(见帖子的结尾)

我不知道这是否可行(Launcher创建一个JavaFX窗口 – 入口点不在表示类本身).我不想使用预加载器(我认为预加载器仅用于启动期间的重负载),因为启动器将整个程序表示为一个对象(表示,业务和持久性 – 一个3层程序).入口点应该在表示类之外(在此示例中为启动程序类)

以下示例确实有效.但对我来说,它就像一块“黑魔法”

这是我的代码

发射器:

package javafxapplication1;

public class Launcher
{
    public static void main(String[] args)
    {
        System.out.println("main()");

        // Do some stuff and then create the UI class

        JavaFXApplication1 client = new JavaFXApplication1();
        client.caller(args);
    }
}

JavaFXApplication1:

package javafxapplication1;

import javafx.application.Application;
import javafx.stage.Stage;

public class JavaFXApplication1 extends Application
{ 
    @Override
    public void start(Stage primaryStage)
    {
        System.out.println("start()");
        primaryStage.setTitle("I am a JavaFX app");
        primaryStage.show();
    }

    public void caller(String[] args)
    {
        System.out.println("caller()");
        launch(args);
    }
    /* We call the main function from the client
    public static void main(String[] args)
    {
        launch(args);
    }*/
}

该程序的输出是:

start()

有没有办法创建这样的应用程序?谢谢

最佳答案 这个问题的答案是创建一个java项目而不是JavaFX项目.在此之后,您可以添加JavaFX主类并编写方法(调用launch()).

也许您必须从​​/ jdk _ * / jre / lib目录添加编译时库deploy.jar,javaws.jar,jfxrt.jar和plugin.jar

点赞