我在JavaFX中阅读了几个关于Scenes vs Panes / StackPanes的内容。我只是很难确定是否存在“行业标准”。首先,我想要登录 - >仪表板 - >其他“屏幕”。对于场景与堆叠窗格,是否有首选/标准?我理解这个问题是否因“基于意见”而被关闭,但我在技术上并不是在寻找意见;我正在寻找应该构建JavaFX应用程序的标准。
答案 0 :(得分:0)
AFAIK没有来自JavaFX核心的标准,也没有针对此问题的任何指导方针。
回到Swing时代,我们过去依赖CardPane
来达到理想的行为。遗憾的是,JavaFX核心并不提供开箱即用的容器/组件。可以根据StackPane
编写一个类似的容器(诀窍是确保后面层中的子节点隐藏在视图之外)。
你提到的切换场景似乎也是一个很受欢迎的选择,虽然我更喜欢改变scene
的根,而不是完全切换整个事物。
最后,构建中型到大型JavaFX应用程序很可能需要某种应用程序框架。除了Application
类提供的非常基本的应用程序生命周期之外,JavaFX核心在这方面不再提供支持。我的建议是查看https://github.com/mhrimaz/AwesomeJavaFX#frameworks并根据您的具体要求评估这些选项。我有偏见,但我建议你看看http://griffon-framework.org/。平心而论,Griffon并没有强制执行可以回答您问题的特定策略,但最近添加JavaFX支持应该可以简化实现CardPane
。也许这就是我们为下一个版本所做的事情: - )
答案 1 :(得分:0)
我认为这实际上取决于您的应用程序的性质。也就是说,它是一个可见的窗口,根据您的活动改变内容(例如,可以改变模式的Windows计算器),或者带有选项卡式窗格的编辑器主窗口,或者"工具"应用程序,如图像编辑器,主视图和单独的子窗格。
对于您的用例,我只会切换主Scene对象的根节点属性。所以你会有一个"仪表板"根节点,当您在仪表板上单击/选择某些内容时,只需使用要显示的新节点更新根节点属性。