Я создал настраиваемый элемент управления, который расширяет Region
с помощью элемента fx:root
. Моя проблема в том, что когда я пытаюсь загрузить его, я получаю LoadException
, утверждая, что мне нужно определить DefaultProperty
. Из того, что я могу сказать, Region не раскрывает getChildren()
как общедоступный, чтобы позволить разработчикам решить, могут ли клиенты свободно добавлять вещи или нет.JavaFX - Определение свойства по умолчанию
Мой вопрос: как я могу определить детей как свойство по умолчанию? Я пробовал читать документы, но они только говорят, для чего предназначена аннотация, а не как она используется. Я тоже не смог найти никаких примеров. Каждый раз, когда я пытаюсь аннотировать поле или метод с помощью @DefaultProperty
, я просто получаю ошибку компиляции The annotation @DefaultProperty is disallowed for this location
.
в то время как это избавилось от 'LoadException', вместо этого теперь я получаю ' UnsupportedOperationException: не могу определить тип свойства. \t at com.sun.javafx.fxml.BeanAdapter.getSetterMethod (Неизвестный источник) ' при попытке добавить узлы в элемент управления. Я думаю, это потому, что нет метода setChildren. – kai
См. Обновление ... Я не уверен, что есть способ сделать то, что вы хотите, не делая 'getChildren()' public. –
Другое отличие состоит в том, что в Регионе есть Shape, вы можете сказать, что он выглядит как многоугольник. Наверное, я могу решить это, просто добавив многоугольник в качестве дочернего элемента панели. Во всяком случае, ваш ответ решил, что я изначально просил, поэтому я соглашусь. Благодаря! – kai