Редактор GUI для Java, который может манипулировать объектами в RUNTIME - PullRequest
8 голосов
/ 03 мая 2011

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

В качестве альтернативы, я могу использовать графический редактор, который может взаимодействовать с работающей Javaпрограмма.Программа говорит «пожалуйста, добавьте кнопку», и редактор показывает пользователю палитру с кнопками.Пользователь добавляет кнопку и нажимает ее, и программа получает событие «нажатие кнопки».

Есть ли такая вещь, которую можно использовать в готовом виде, не записывая ее с нуля?

1 Ответ

1 голос
/ 04 мая 2011

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

Тем не менее, я не верю, что какие-либо текущие предложения позволяют вам просто переключаться между временем разработки и временем исполнения в приложении.

По сути, вам нужно (а) выбрать библиотеку и (б) связать необходимый механизм для поддержки времени разработки с вашим запущенным приложением, и (в) фактически маскировать поверхность дизайна (холст) в качестве графического интерфейса среды выполнения. Конечно, вам нужно будет только поддерживать интересующие вас дизайнерские операции, но в итоге вы пишете графический редактор.

В чем выгода этого подхода? Что ж, вы повторно используете "компоненты" и в основном должны взломать контейнер.

Если бы мне пришлось сделать что-то подобное, я бы серьезно посмотрел на netbeans, , помнил бы этот вопрос о STO и взял бы его оттуда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...