我正在创建一个游戏并想到使用JavaFx。我想要做的是从main-class中重复调用一个render-method在GUI类中(包含所有javafx的东西开始,场景等),同时处理主要的游戏逻辑(collisiondetection等) -类。问题是我遇到了一堆错误,似乎他们希望GUI类成为应用程序的中心。所以我想知道的是我的方法错了吗?
答案 0 :(得分:0)
JavaFX的主要线程是“应用程序线程”,它执行GUI功能,并且没有规避这一点。
最好让您的“GUI类”包含JavaFX所需的start
和main
方法,然后在创建GUI对象后,启动一个新的线程来启动入口点你的应用逻辑。即使由于某种原因,您不希望在应用程序启动时显示GUI,您也可以在完成其他业务逻辑后调用为您执行primaryStage.show()
的方法。
你仍然可以让你的应用程序逻辑每隔一段时间调用GUI的渲染方法,你甚至可以创建另一个线程,或者只使用一个计时器。不过,我认为这不是范例。在任何情况下,您都应该使用Platform.runLater()
对GUI进行更改,否则最终会挂起。