TornadoFX:标签文字没有更新
我目前遇到的问题之一是我似乎无法更改在动态加载的AnchorPane
实现的Label的文本。 我认为这可能与控制器和JavaFX / TornadoFX的工作有关,但我似乎无法找到我做错了什么。
问题本身发生在这个类中 ,发生在showSystemDetails()
方法中。 我期望发生的是,按下侧边栏中的“系统详细信息”按钮,标签将更新到所需的值,但这不是由于某种原因而发生的。
请随时指出我做错了什么,或提供任何建设性的批评。 这个项目还在发展中,很多东西还是乱糟糟的。
这不起作用的原因是,每次在菜单中选择一些内容时,都要手动加载新版本的FMXL文件。 最初由SystemDetailsViewProxy
加载的FXML文件已正确更新,但这不是您在屏幕上显示的那个。
要查看更新后的视图,请确保将SystemDetailsViewProxy
实例的根节点放回。
例如,你可以改变你的DrawerMenuButton枚举来包含对SystemDetailsViewProxy :: class的引用,而不是那两个字符串,并且在点击菜单按钮时使用add(viewClass)
将正确的根节点添加到你的视图中。
此外,你应该使用ViewModels和绑定,而不是手动更新标签的文本属性。 你正在做很多手工/错误的工作,框架可以免费帮你。
你的应用程序没有在几个重要的领域使用最佳实践,而你正在为自己的解决方案提供框架已经很好的东西:)
视图是由框架管理的单例,但是你自己实例化它们而不是使用inject / find。 结果是重要的生命周期方法没有被调用。
我也建议寻求类型安全的建设者,而不是FXML。
希望这可以帮助 :)