我应该将SceneBuilder用于大型复杂的JavaFX GUI吗?

时间:2017-03-01 19:17:13

标签: javafx-8 scenebuilder

我在Swing中编写了一些复杂的GUI,但我从未使用过图形工具。我一直只是编写Java代码。现在我正在编写我的第一个JavaFX GUI,它将是一个庞大而复杂的GUI,可以从云中获取所有数据值。我已经开始使用SceneBuilder进行初步工作,但我遇到了SceneBuilder expects the .fxml and controller .java file to be in the same directory的问题。似乎SceneBuilder开发人员认为JavaFX项目应该将所有文件都放在一个目录中,就好像我们正在构建玩具演示而不是工业强度GUI。

我还注意到没有关于控制器类应该进入什么的架构指南。如果存在应该指导.fxml文件,控制器类和其他GUI类之间的设计和交互的模式和习惯用法,那么我无法找到它们。大型,复杂的GUI需要遵循经过验证的习语,否则它们将变得无法维护。如果所有业务逻辑和与云的交互都在控制器类中,则控制器类可能会变成几千行。然而,似乎没有关于控制器类中应该包含什么以及控制器类中不应该存在什么的指导。

我担心大型fxml结构变得无法维护。如果每个.fxml文件是一个场景,GUI可以由多个.fxml文件组成,但我没有找到很好的指导或如何执行此操作的示例。

在我投入更多时间进入.fxml之前,我很想放弃SceneBuilder。是否有其他人能够编写大型复杂的GUI,这些GUI依赖于使用SceneBuilder来自和写入云的所有数据?

感谢。

1 个答案:

答案 0 :(得分:1)

绝对。

我设计了一个几乎没有耦合的配置驱动UI。使用FXML我可以将视图存储在数据库中,并具有读取这些位置并加载UI的操作,这些操作会注入控制器等......

我们将在这个应用程序完成后有数百个阶段,FXML和SceneBuilder会缩短MONTHS的设计/开发/维护时间。

我认为这是JavaFX的优势。

编辑以显示您可以添加控制器的位置...

enter image description here