Javafx:程序必须从应用程序启动的地方开始吗?

时间:2016-10-23 09:41:43

标签: java javafx

所以我们有一个电话,让我们称之为GUI,这将使应用程序运行。

public class GUI extends Application {

    public void start(Stage primaryStage){
        //GUI code
    }

    public void main(String[] args){
        launch(args);
    }
}

如果你想在另一个类中启动程序,有没有其他方法可以让应用程序在没有main方法的情况下启动?

1 个答案:

答案 0 :(得分:1)

关闭原因这是可能的。 唯一的限制是静态方法launch()是包私有的,因此您必须将另一个起始类放在同一个包中或覆盖launch()以使其公共或提供静态公共委派方法:

public class GUI extends Application {

    public void start(Stage primaryStage){
       //GUI code
    }

    // delegation not pssible with static methods
    // static public void launch(String[] args){

    static public void doLaunch(String[] args){
        launch(args);
     }
}

class StarterClass {

    public void main(String[] args){
       GUI.doLaunch(args);
    }
}

[edit] 无法覆盖静态方法。