我正在构建一个JavaFX应用程序,我想知道是否有关于如何尽可能快地加载新Scene电流的建议(最佳实践)Stage.
目前我正在做的是(或多或少)这个:
Parent root = (Parent)myFXLoader.load();
currentStage.setScene(new Scene (root);
Run Code Online (Sandbox Code Playgroud)
上面的工作很好,速度足够简单Scenes但是当加载更复杂的场景初始化TableViews,Comboboxes等时,Scenes 之间的过渡需要很多秒,这很烦人.
在我Controller的initialize(URL url, ResourceBundle rb)方法中进行的所有初始化.
在那里我将项目添加到Choice/Combo框中,初始化TableView等,但正如我所说,它需要太多时间.
难道我做错了什么?我应该在其他地方初始化吗?
谢谢.
编辑:
任何有兴趣帮助这个,甚至有兴趣为他们的项目,我已经上传了我的项目(Netbeans项目)的一部分在google.com.
你可以使用SVN查看它.这是链接:
http
://tabularasafx.googlecode.com/svn/trunk/ userName:tabularasafx-read-only
no password required
运行项目后的说明:
第一个屏幕是登录界面,只需单击OK
第二个屏幕是"homePage ",你可以看到一个treeView菜单并导航到4个不同的屏幕
我的问题是类的加载时间 - >创建页面.看看它,如果你发现任何
编辑,请告诉我:
我对@jewelsea建议进行了3次更改.
1.我使用HashMap来保存每个屏幕的所有控制器
2.我只更新场景的一部分而不是整个场景
3.我使用了JavaFX2的答案- 在向gridpane添加自定义制作(fxml)面板时性能非常差动态地帮助控制器加载更快,如答案中所述.
现在一切都快得多!!!!
随意使用该项目作为指导
我也更新程序以浏览3个屏幕,以便更好地理解
我的代码是凌乱的
现有的javafx错误链接已经死亡.如何在新系统中找到错误?例如,如何找到错误
https://javafx-jira.kenai.com/browse/RT-28874
在
https://bugs.openjdk.java.net