Пользовательские компоненты в Scenebuilder 2.0


В Scenebuilder 1.1 можно импортировать весь пользовательский компонент целиком.

В версии 2.0, однако, компонент импортируется как отдельные части (контейнер и узлы). Поскольку мой пользовательский компонент полагается на унификацию для работы со своим контроллером и идентификаторами, это нарушает его.

Могу ли я еще что-нибудь сделать? Я бы очень хотел иметь возможность использовать Java 8 и Scenebuilder 2.0 для его DatePicker. Если полный стабильный релиз не за горами, возможно, я смогу подождать. Я бы желательно избегать халтурных решений.

Есть идеи?

1 3

1 ответ:

Я нашел только один способ справиться с этим видом обратной совместимости: создать свой собственный scenebuilder.

Это официально открытый исходный код, так что вы можете проверить его с mercurial на bitbucket, например.

Затем вы создаете его и изменяете, чтобы поместить все ваши пользовательские компоненты и зависимости в один путь к классу для одного уникального загрузчика классов.

Проверьте класс с именем FXOMLLoader, именно там используется classloader, мое исправление состояло в том, чтобы явно использовать только один classloader для все компоненты и добавление нескольких репертуаров с моими deps внутри в путь к классу для его работы.

Для этого я использовал библиотеку загрузчика классов Jar, и она работает довольно хорошо. Хотя это довольно банально.