私はJavaFXの新機能です。私はそれを学ぶ前に、私は1年半のアンドロイドのプログラミングをしてきました。今、私は単一のシーンとリストビューで簡単なアプリを作ったが、うまくいかなかった。問題は、シーンが表示されているときに、このシーンを閉じるまでコードの実行が停止されていることです。私はメインクラスのmain()メソッド内で初期化しているhibernateのセッションファクトリを持っていますが、シーンを閉じるまではプログラマは内部には入りません。私はこのようなシーンを初期化します:JavaFXがmain()メソッドの内部に入らない
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();
}
}
メインメソッドの中にプログラマーが入っていないことをどのように知ることができますか?私はそれの中にブレークポイントを置くと、私はウィンドウ(シーン)を閉じたときにそれを停止しました。また、すべてのハイバネート初期化ログは、私がそれを閉じるだけで表示されます。
UPDATE:代わりに、mainメソッドの主な方法
public static void main(String[] args) {
launch(args);
try {
setUp();
} catch (Exception e) {
System.out.println(e.getMessage());
return;
}
databaseEventNotifier = DatabaseEventNotifier.getInstance();
databaseEventNotifier.notifyListeners();
}
質問に 'main()'を追加できますか? – ItachiUchiha
私はJavaFXに慣れていませんが、Swingによく似たEDTを持っていると思います。したがって、UIイベントハンドリング/レンダリングプロセス(Hibernateの初期化など)に直接含まれないものは、UIを起動する前に、または別のスレッドで実行する必要があります。 – Thomas
main()メソッドを表示します。あなたが休止状態のコードの前に 'launch()'を呼び出すと、 'launch()'はUIが閉じられるまで戻りません。 –