首先,需要考虑一些事情:
1)更改场景将取消链接到您附加到该事件处理程序的链接,并且可能也取消您提到的“状态栏”的链接。
2)Java是一种高度面向对象的语言,这也意味着在不同的对象之间进行更改,并且在可能的情况下使用多态是一种很好的做法。
我的经验与事件处理程序有关,因为事件处理程序除了链接到特定节点(按钮)外,还经常链接到场景,但是可能还需要考虑其他类似的概念。在一个项目中,我经常在显示菜单,暂停,播放和游戏之间进行切换,但是由于我主要使用相同的键,而鼠标几乎不参与其中,所以我意识到我不必从创建新的事件处理程序中受益。用于单独的Scene对象。相反,我使用该Scene.setRoot();方法来更改活动显示的“节点/窗格”。
但是,如果您的处理方式有很大不同,例如从带有按钮和文本字段的菜单进入FPS游戏,其中每个输入的效果都与菜单相反,那么最好设置不同的Overrides事件处理程序在两个不同的Scene对象中使用,而是使用Stage.setScene();方法,从而使处理程序以多态*的方式运行,而不是在处理程序内部没有另一组控制结构,以便当您不在菜单中时CPU可以在每个帧中进行处理。
*我知道,当我说多态时,我并不是在指继承多态,但这是我想描述避免在可能需要更好性能的情况下避免额外的运行时代码的最佳方法。



