[英]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.