Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以创建JavaFX应用程序对象?_Java_Javafx - Fatal编程技术网

是否可以创建JavaFX应用程序对象?

是否可以创建JavaFX应用程序对象?,java,javafx,Java,Javafx,可以从javaFX生成应用程序对象吗 public class Constructor { public Constructor() { Application a = new Application() { @Override public void start(Stage window) throws Exception { } }

可以从javaFX生成应用程序对象吗

public class Constructor
{
    public Constructor()
    {
        Application a = new Application()
        {
            @Override
            public void start(Stage window) throws Exception
            {

            }
        };
        a.launch();
    }
}
当前,当我尝试运行它时,它会提供以下信息:

线程“main”java.lang.RuntimeException中的异常:错误:类net.white秋.lightcast.Constructor不是javafx.application.application的子类

我猜想,这是由类
构造函数
未扩展
应用程序
引起的。 有没有办法解决这个问题,或者说这是启动JavaFX应用程序的唯一方法

编辑: 我知道如何启动javaFX应用程序。我想制作一个应用程序并将其放在一个对象中。这是否可能?

应用程序.launch()
是一种静态方法,因此
a.launch()
相当于
应用程序.launch()
。这意味着它将尝试启动调用它的类的应用程序,即
Constructor
class

正确的方法是:

private static class MyApp extends Application
{
    @Override
    public void start(Stage window) throws Exception
    {

    }
};

Application.launch(MyApp.class, null);

您应该将应用程序扩展到初始化JavaFXToolkit;并重写start方法以显示表单(javafxstage)。显然,您需要主静态方法来运行应用程序

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.shape.Circle;
import javafx.scene.shape.CircleBuilder;
import javafx.stage.Stage;

public class Constrcutor extends Application {

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("JavaFX Abacus");
        Pane root = new Pane();

        Circle circle = CircleBuilder.create()
            .radius(20)
            .centerX(20)
            .centerY(20)
            .build();
        root.getChildren().add(circle);

        primaryStage.setScene(new Scene(root, 400, 400));
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
看这里