Intellij UI Designer: кнопка перезагрузки пользовательского компонента не отображается

В настоящее время я полностью застрял со следующей проблемой: я хочу, чтобы графический интерфейс с панелью управления справа вводил некоторые параметры программы, которые следует использовать для рисования нескольких строк на графической панели в левой части моего графического интерфейса. Мой подход состоял в том, чтобы использовать конструктор форм для организации макета со всеми кнопками, метками и текстовыми полями. Затем я создал класс GraphicPanel, который расширяет JPanel, и я переопределил метод PaintComponent этого класса, чтобы рисовать линии.

Теперь я хочу добавить этот специально созданный компонент через конструктор форм в свой пользовательский интерфейс. Но когда я пытаюсь это сделать с помощью опции Non-Palette-Component: ничего не происходит, и компонент даже не отображается в дереве иерархии. Я уже искал в Интернете решения и обнаружил, что мой класс необходимо скомпилировать, а кнопку ReloadCustomComponents-Button нужно нажать после вставки пользовательских материалов. Мой класс скомпилирован, но кнопка ReloadCustomComponents-Button не отображается на панели инструментов UI-Designer. Я попытался настроить панель инструментов вручную - и в настройке конфигурации Intellij также указывает кнопку как отображаемый значок, но ее нет, когда я применяю конфигурацию. У кого-нибудь была такая же проблема или у кого-нибудь есть предложения, что я могу попробовать или что еще я могу проверить? Мне на самом деле интересно, является ли это ошибкой программного обеспечения или я пропустил что-то другое. Я новичок и особенно работаю с пользовательским интерфейсом, а Swing для меня в новинку, поэтому я понятия не имею, как с этим работать. Спасибо за любую помощь!

(Я использую Intellij Idea 2020.3.1 в Windows и JDK 15.0.1, и мой выходной формат для кода формы пользовательского интерфейса установлен в двоичные файлы классов)


person Logicalfrog    schedule 20.01.2021    source источник
comment
Попробуйте установить уровень языка проекта на 11. См. stackoverflow.com/a/12900859/104891 соответствующие снимки экрана конфигурации. . Если вы скомпилируете свой класс для JDK 15, IntelliJ IDEA не сможет его загрузить, так как он работает под JDK 11.   -  person CrazyCoder    schedule 20.01.2021
comment
Большое спасибо! Это действительно решило мою проблему...   -  person Logicalfrog    schedule 26.01.2021


Ответы (1)


Классы компонентов пользовательского интерфейса, используемые в палитре конструктора пользовательского интерфейса, должны быть скомпилированы для той же или более ранней целевой версии Java, которая используется для запуска IntelliJ IDEA. Версия IDE JDK доступна в Help | Диалоговое окно «О программе» и 11 для версий IDE 2020.x.

Измените целевую версию JDK на 11, чтобы среда IDE могла загружать классы компонентов. см. этот ответ для соответствующих мест, где настраиваются языковые уровни JDK.

person CrazyCoder    schedule 26.01.2021