簡體   English   中英

可以創建JavaFX Application對象嗎?

[英]Possible to create JavaFX Application object?

是否可以從javaFX創建Application對象?

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

            }
        };
        a.launch();
    }
}

當我嘗試運行它時,它當前給了我這個:

線程“主”中的異常java.lang.RuntimeException:錯誤:類net.whiteautumn.lightcast.Constructor不是javafx.application.Application的子類

我認為,這是由Constructor類未擴展Application引起的。 有什么方法可以解決這個問題,或者這是啟動JavaFX應用程序的唯一方法嗎?

編輯:我知道如何啟動一個javaFX應用程序。 我要制作的應用程序並將其包含在對象中。 這可能嗎?

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);

您應該將應用程序擴展到初始化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);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM