在我的Java类中,我使用了
Chart.main(args)
用参数启动我的 JavaFX 类。程序在javafx类中被阻止并且无法返回到我的java类的问题。
跟
Chart.launch(args);
我收到错误:
java.lang.runtimeException: 错误: 类图像不是
javafx.application.Application
的subclass
。
我找到了类似的例子,从java
开始javafx
但没有参数。
javafx.application.Application.launch(Chart.class);
感谢您的帮助。
采用Class
参数的launch()
方法也采用参数列表,因此您可以
Application.launch(Chart.class, args);
但请注意,在 JavaFX 应用程序退出之前,它是阻塞的launch()
方法。因此,根据您要执行的操作,您可能需要从后台线程调用它,例如
new Thread(() -> Application.launch(Chart.class, args)).start();
这里有一个例子,你的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();
}
}