繁体   English   中英

TornadoFX:标签文本未更新

[英]TornadoFX: Label text not updating

我目前遇到的问题之一是,我似乎无法更改在动态加载的AnchorPane实现的Label的文本。 我认为这可能与控制器以及JavaFX / TornadoFX的工作方式有关,但我似乎找不到我做错的事情。

问题本身发生在此类中 ,并且发生在showSystemDetails()方法中。 我希望会发生的是,按下边栏中的“系统详细信息”按钮后,标签将更新为所需的值,但是由于某种原因这不会发生。

请随时指出我在做什么,或提供任何建设性的批评。 该项目仍处于全面开发中,因此很多事情仍然很混乱。

这样做不起作用的原因是,每次您在菜单中选择某些内容时,您都在手动加载FMXL文件的新版本。 最初由SystemDetailsViewProxy加载的FXML文件已正确更新,但现在不再是您在屏幕上显示的文件。

要查看更新的View,请确保将SystemDetailsViewProxy实例的根节点放回去。

例如,您可以将DrawerMenuButton枚举更改为包含对SystemDetailsViewProxy :: class的引用,而不是这两个字符串,并在单击菜单按钮时使用add(viewClass)将正确的根节点添加到视图中。

此外,您应该使用ViewModels和绑定,而不是手动更新标签的text属性。 您正在做大量手动/容易出错的工作,该框架可以免费为您提供帮助。

您的应用程序未在几个重要领域使用最佳实践,并且您正在为框架已经很好地完成的工作推出自己的解决方案:)

当由框架管理时,视图是单例,但是您可以实例化它们而不是使用inject / find。 结果是没有调用重要的生命周期方法。

我还建议研究类型安全构建器,而不是FXML。

希望这可以帮助 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM