我使用 Swing 多年,现在正在转向 JavaFX。尽管有很多相似之处,但我对一些主题感到困惑,例如如何有效地开发涉及许多场景/阶段的大型应用程序。在 Swing 中,最常用的方法是继承,例如通过子类化 JPanel 类或其他 Swing 组件。从我到目前为止所看到的情况来看,这似乎在 JavaFX 中并不常见。尽管可以对 Stage 和 Scene 类进行子类化,但似乎不建议这样做。
但我也注意到,特别是在复杂 GUI 的情况下,我的主类(包含 start
方法的类)最终变成了一个由数百行代码组成的巨大集群。这样的代码似乎很难调试和维护,但可能我使用了错误的方法。虽然在 Swing 中可以通过某些方式避免这种情况,例如通过子类化某些组件并重用它们,是否有任何类似的设计技术可以帮助我将 JavaFX 应用程序分解为更多类?
最佳答案
我会看一下 Oracle 的本教程,它会引导您构建多屏幕 javafx 应用程序。
可以在此处找到本教程的代码 Acaicedo GitHub
它遵循 MVC( Model View Controller ),其中 FXML 文件是 View ,与用 java 编写的独特 Controller 相关联。该框架添加了一个额外的 Controller ,允许在屏幕之间导航(即将显示内容转移到不同的 Controller 和 View )。
关于JavaFX类设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45173924/