构建应用程序 gui 组件树的首选方法是什么?
实例化所有组件并构建整个树,通过对用户事件的显示/隐藏/禁用/启用操作来控制它。
使用基于用户事件的创建/添加/删除组件动态创建 gui。
我对 JavaFX 中的这个设计问题特别感兴趣。
构建应用程序 gui 组件树的首选方法是什么?
实例化所有组件并构建整个树,通过对用户事件的显示/隐藏/禁用/启用操作来控制它。
使用基于用户事件的创建/添加/删除组件动态创建 gui。
我对 JavaFX 中的这个设计问题特别感兴趣。
抱歉,我对 JavaFX 不太了解。
但是,我建议选项 2。如果您在开始时实例化所有内容,那么当您实际上只需要为当前可见的 gui 组件使用内存时,您将用完整个内存负载。
为当前屏幕创建所有组件,并显示/隐藏/禁用/启用它们。但不要创建不在当前屏幕/窗口/表单/对话框中的组件。
答案主要取决于性能。我已经构建了大约 3000 个节点的树,没有问题。在某个时间点,添加到场景中的节点数量确实会影响性能,但这是一个不断变化的目标,因为 JavaFX 的每个版本都在改进这一点。
但是,并非所有这些性能下降都是由于节点数量造成的,因为它可能是由于“BindStorming”。请参阅 Jim Connors博客上的这篇文章和其他与性能相关的文章。