JavaFX没有进入main()方法

时间:2016-03-30 08:28:25

标签: java javafx

我是JavaFX的新手。在我开始学习之前,我已经为Android编程了一年半。现在我用一个场景和一个列表视图创建了一个简单的应用程序,但它并不顺利。问题是当显示场景时,代码执行将停止,直到我关闭此场景。我已经在我的主要类main()方法中初始化了hibernate的会话工厂,但是在关闭场景之前,程序不会进入它。我像这样初始化场景:

public class MyApp extends Application {
    public void start(Stage stage) {            
        Group root = new Group(circ);
        Scene scene = new Scene(root, 400, 300);

        stage.setTitle("My JavaFX Application");
        stage.setScene(scene);
        stage.show();
    }
}

我怎么知道程序没有进入main方法?我在其中放置了一个断点,当我关闭窗口(场景)时它只停留在它上面。此外,所有hibernate初始化日志仅在我关闭时出现。

更新:主要方法

public static void main(String[] args) {
        launch(args);
        try {
            setUp();
        } catch (Exception e) {
            System.out.println(e.getMessage());
            return;
        }
        databaseEventNotifier = DatabaseEventNotifier.getInstance();
        databaseEventNotifier.notifyListeners();
    }

1 个答案:

答案 0 :(得分:1)

您可以使用initializer methods in java之一代替main方法,而不是像此实例初始化程序一样:

public class MyApp extends Application {
    {
        // here you can initialize hibernate and other stuff before the start method
    }

    public void start(Stage stage) {            
        // ... your start method
    }
}

或这个静态初始化器:

public class MyApp extends Application {
    static {
        // here you can initialize hibernate and other stuff before the start method
    }

    public void start(Stage stage) {            
        // ... your start method
    }
}

它们之间的区别在提供的链接上有详细解释,但总之我用这种方式理解它们:静态初始化器用于初始化静态成员和实例初始化器用于istance变量。