在 Scenebuilder 1.1 中,您可以将整个自定义组件作为一个整体导入。然而,在2.0中,它将组件作为单独的部分(容器和节点)导入。由于我的自定义组件依赖于统一工作以及其控制器和ID,因此这会导致问题。目前是否有任何解决方法呢?我真的很想能够使用Java 8和Scenebuilder 2.0来使用DatePicker。如果完整的稳定版本即将发布,也许我可以等待。最好避免hacky解决方案。有什么想法吗?
我只找到一种处理这种后向兼容性的方法:建立自己的场景构建器。它是官方开源的,因此您可以在例如bitbucket上使用mercurial进行检查。然后,您需要构建它并修改它,将所有自定义组件和依赖项放入同一个类路径中,以便使用唯一的类加载器。检查名为FXOMLLoader的类,它是类加载器被使用的地方,我的修复方法是明确地仅使用一个类加载器来处理所有组件,并添加一些包含我的依赖项的目录到类路径中使其正常工作。我使用了Jar Class Loader库来实现这一点,它的效果非常好。不过这种方法相当hacky。