Любая совместимая библиотека JavaBean будет поддерживать семантику Design Time . В двух словах, бин (компонент) понимается как бегущий в контейнере. Во время разработки этот контейнер является редактором 'canvas', а во время выполнения - корнем иерархии (GUI) контейнера. Ожидается, что автор бина запросит этот флаг состояния и будет действовать соответственно, например, изменить границы во время разработки, чтобы включить «маркеры» для перетаскивания для изменения размера и т. д. И, естественно, родительский компонент (который считается своего рода канвой дизайна) также должен учитывать изменения дизайна, например. измените компоновку для обработки измененного размера компонента.
Тем не менее, я не верю, что какие-либо текущие предложения позволяют вам просто переключаться между временем разработки и временем исполнения в приложении.
По сути, вам нужно (а) выбрать библиотеку и (б) связать необходимый механизм для поддержки времени разработки с вашим запущенным приложением, и (в) фактически маскировать поверхность дизайна (холст) в качестве графического интерфейса среды выполнения. Конечно, вам нужно будет только поддерживать интересующие вас дизайнерские операции, но в итоге вы пишете графический редактор.
В чем выгода этого подхода? Что ж, вы повторно используете "компоненты" и в основном должны взломать контейнер.
Если бы мне пришлось сделать что-то подобное, я бы серьезно посмотрел на netbeans, , помнил бы этот вопрос о STO и взял бы его оттуда.