如何从java代码启动javafx应用程序

时间:2016-04-20 11:52:21

标签: java javafx

从我的java课程中,我使用了

Chart.main(args) 

用参数启动我的javafx类。 程序在javafx类中被阻止而无法返回到我的java类的问题。

使用

Chart.launch(args); 

我收到错误:

  

java.lang.runtimeException:错误:类图像不是subclass的{​​{1}}。

我找到了类似的示例,从javafx.application.Application开始javafx,但没有参数。

java

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

launch() method taking a Class parameter也会获取参数列表,因此您可以执行

Application.launch(Chart.class, args);

请注意,在JavaFX应用程序退出之前,launch()方法会阻塞。因此,根据您要完成的操作,您可能需要从后台线程调用此方法,例如

new Thread(() -> Application.launch(Chart.class, args)).start();

答案 1 :(得分:0)

这是一个例子,你的java代码是:

public class FXLauncher {
    public static void main(String[] args) {
        FXApplication application = new FXApplication();
        application.handleArgs(args);
        new Thread(application ).start();
    }
}

,您的JavaFx应用程序如下:

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

public class FXApplication extends Application implements Runnable  {

    public void handleArgs(String[] args){
        // handle java args
        System.out.println(args);
    }        

    @Override
    public void start(Stage stage) throws Exception {
        // your javafx code
    }

    @Override
    public void run(){
        launch();
    }   
}