Пользовательские компоненты в Scenebuilder 2.0
В Scenebuilder 1.1 можно импортировать весь пользовательский компонент целиком.
В версии 2.0, однако, компонент импортируется как отдельные части (контейнер и узлы). Поскольку мой пользовательский компонент полагается на унификацию для работы со своим контроллером и идентификаторами, это нарушает его.
Могу ли я еще что-нибудь сделать? Я бы очень хотел иметь возможность использовать Java 8 и Scenebuilder 2.0 для его DatePicker. Если полный стабильный релиз не за горами, возможно, я смогу подождать. Я бы желательно избегать халтурных решений.
Есть идеи?
1 ответ:
Я нашел только один способ справиться с этим видом обратной совместимости: создать свой собственный scenebuilder.
Это официально открытый исходный код, так что вы можете проверить его с mercurial на bitbucket, например.
Затем вы создаете его и изменяете, чтобы поместить все ваши пользовательские компоненты и зависимости в один путь к классу для одного уникального загрузчика классов.
Проверьте класс с именем FXOMLLoader, именно там используется classloader, мое исправление состояло в том, чтобы явно использовать только один classloader для все компоненты и добавление нескольких репертуаров с моими deps внутри в путь к классу для его работы.
Для этого я использовал библиотеку загрузчика классов Jar, и она работает довольно хорошо. Хотя это довольно банально.