Как установить свойство bean-компонента Java как экспертное свойство? - PullRequest
5 голосов
/ 30 августа 2011

API интроспекции Java Beans включает в класс PropertyDescriptor метод isExpert. Редакторы графического интерфейса на основе бина, такие как WindowsMaker, используют это, чтобы скрыть или показать «экзотические» свойства.

Что заставляет определенное свойство Java-бина считаться «экспертом»? Как библиотека Swing, например, устанавливает определенные свойства как «экспертные свойства»? Как программно сделать то же самое для Java-бинов, которые я пишу?

Ответы [ 2 ]

2 голосов
/ 30 августа 2011

По-видимому, это делается в JDK с использованием нестандартного расширения компилятора.

Если вы посмотрите на исходный код Swing, некоторые комментарии Javadoc содержат тег @beaninfo, содержащий такую ​​информацию:

/**
 * ... Some comment ...
 * @beaninfo
 *        bound: true
 *       expert: true
 */
public void setSomething(SomeType value) {
    // ...
}

Вот пример в исходном коде класса JTable .

Я также нашел эту статью , в которой говорится о теге @beaninfo.

1 голос
/ 31 августа 2011

Вы можете создать класс BeanInfo для вашего компонента.Это позволяет настроить дескриптор свойства.Об этом есть раздел в руководстве по JavaBean .

...