Разбиение классов Java Swing в палитре Netbeans - PullRequest
1 голос
/ 29 июля 2010

Я хотел бы знать, как лучше разбить большие классы Java Swing.Некоторые из них довольно большие, и я хотел бы начать процесс правильной модульности моего кода.Я видел, что могу добавить свои классы в палитру Netbeans, но проблема в том, что они не показывают мне графическое представление того, как это будет выглядеть, когда я «перетаскиваю» их в дизайнер GUI.Некоторые сторонние jar-файлы поддерживают добавление в палитру, и они предоставляют графический предварительный просмотр того, как они будут выглядеть после запуска.

Мой вопрос: я не знаю правильной терминологии для этого предварительного просмотра."так что я нахожу это очень трудно для поиска.Я хотел бы получить некоторую документацию или учебное пособие о том, как сделать так, чтобы мои текущие классы можно было добавлять в палитру, и посмотреть, как они будут выглядеть в конструкторе графического интерфейса.

1 Ответ

3 голосов
/ 29 июля 2010

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

Самый простой способ сделать это - щелкнуть правой кнопкой мыши класс в окне Project и выбрать BeanInfo editor....

Вы захотите переключиться на представление конструктора, чтобы настроить, какие свойства являются экспертными / скрытыми / предпочтительными.

  • Предпочтительные свойства отображаются в верхней верхней части окна (Свойства) окна свойств.
  • Свойства эксперта появляются во втором сгибе (Другие свойства).
  • Скрытые вообще не появляются.

Вы также можете указать, будут ли свойства связаны, ограничены и т. Д. Чтобы установить значки, выберите самый верхний узел дерева (BeanInfo), и вы увидите свойства для значков.

Чтобы NetBeans рассматривал ваш компонент как контейнер (или не контейнер):

  • Переключиться в режим просмотра исходного кода
  • Найдите строку, читающую
    // Here you can add code for customizing the BeanDescriptor.
  • Добавить эту строку:
    beanDescriptor.setValue("isContainer", Boolean.TRUE); // Or FALSE if it's not a container
...