gpt4 book ai didi

javafx - TornadoFX:标签文本未更新

转载 作者:行者123 更新时间:2023-12-02 13:39:16 25 4
gpt4 key购买 nike

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

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

请随时指出我做错了什么,或提供任何 build 性的批评。该项目仍在全面开发中,因此很多事情仍然困惑/损坏。

最佳答案

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

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

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

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

您的应用程序没有在几个重要领域使用最佳实践,并且您正在为框架已经做得很好的东西推出自己的解决方案:)

当由框架管理时, View 是单例的,但是您自己实例化它们而不是使用注入(inject)/查找。结果是没有调用重要的生命周期方法。

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

希望这可以帮助 :)

关于javafx - TornadoFX:标签文本未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45401015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com