是否可以从javaFX创建一个Application对象?
public class Constructor
{
public Constructor()
{
Application a = new Application()
{
@Override
public void start(Stage window) throws Exception
{
}
};
a.launch();
}
}
当我尝试运行它时,它现在给了我这个:
线程“main”中的异常java.lang.RuntimeException:错误:类net.whiteautumn.lightcast.Constructor不是javafx.application.Application的子类
我认为,这是由于课程Constructor
没有延伸Application
造成的。
有什么方法可以解决这个问题,或者这是推出JavaFX应用程序的唯一方法吗?
编辑: 我知道如何启动javaFX应用程序。我想要创建一个应用程序并将其放在一个对象中。这是可能的还是没有?
答案 0 :(得分:0)
Application.launch()
是一种静态方法,因此a.launch()
相当于Application.launch()
。这意味着它将尝试启动调用它的类的应用程序,即Constructor
类。
正确的做法是:
private static class MyApp extends Application
{
@Override
public void start(Stage window) throws Exception
{
}
};
Application.launch(MyApp.class, null);
答案 1 :(得分:0)
你应该将Application扩展到初始化JavaFX Toolkit;并覆盖start方法以显示表单(JavaFx阶段)。显然,你需要主静态方法来运行应用程序。
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);
}
}