2017-02-15 24 views
0

是否可以從javaFX創建一個Application對象?可能創建JavaFX應用程序對象嗎?

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

      } 
     }; 
     a.launch(); 
    } 
} 

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

Exception in thread "main" java.lang.RuntimeException: Error: class net.whiteautumn.lightcast.Constructor is not a subclass of javafx.application.Application

這一點,我相信,通過Constructor不延長Application類引起的。 解決這個問題的任何方法或者是唯一啓動JavaFX應用程序的方法?編輯: 我知道如何啓動一個javaFX應用程序。我想要製作應用程序並將其放入對象中。這是可能的還是不可以的?

+0

看這裏https://docs.oracle.com/javase/8/javafx/api/javafx/application/Application.html –

回答

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

你應該擴展應用初始化的JavaFX工具包;並重寫啓動方法以顯示您的表單(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); 
    } 
} 
相關問題