我是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();
}
答案 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变量。