簡體   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