Разработка инструмента для диаграммы классов UML - PullRequest
4 голосов
/ 21 августа 2011

Я делаю личный проект на инструменте диаграмм классов UML в java и работаю над несколькими проблемами проектирования / программирования.

Самое первое, это блоки с диаграммой классов. Я думаю, что если я построю свой собственный компонент для его представления, но когда он будет нарисован на панели, будет неудобно перемещаться с помощью мыши. Потому что все менеджеры по компоновке в java не позволяют мне свободно размещать блок в любом месте.

Или, если я решу нарисовать свой компонент в виде прямоугольника на панели, его будет проще всего реализовать, но я не могу перемещать его с помощью мыши.

Любой намек или указатель на то, как мне поступить об этом?

Ответы [ 6 ]

3 голосов
/ 21 августа 2011

Также рассмотрим JGraph, который служит основой для нескольких инструментов построения диаграмм.

3 голосов
/ 21 августа 2011

Класс Component Mover может помочь вам с перетаскиванием компонентов.

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

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

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

Я думаю, что если я построю свой собственный компонент для его представления, но когда он будет нарисован на панели, будет неудобно перемещаться с помощью мыши.Потому что все менеджеры компоновки в java не позволяют мне свободно размещать поле в любом месте.

Если вам нужно абсолютное позиционирование компонента, у вас есть возможности:

  1. Используйте нульменеджер компоновки (решение BAD, но в некоторых ограниченных случаях вы можете сэкономить время)
  2. Реализация собственного диспетчера компоновки

Или если я выберу рисовать свой компонент какпрямоугольник на панели, тогда его будет проще всего реализовать, но я не могу перемещать его с помощью мыши.

Это верно.Если вам нужно взаимодействие с мышью, лучше использовать компонент, а не рисовать прямоугольники.

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

К сожалению, Java Swing не имеет класса Canvas, который идеально подходит для этой проблемы. Однако этот вопрос и его ответы демонстрируют, как реализовать холстоподобное поведение с JPanel. Вы можете нарисовать коробки вручную на JPanel, как если бы это был холст.

Для перемещения блоков на панели вы можете захватывать события мыши на JPanel и обрабатывать их самостоятельно.

0 голосов
/ 21 августа 2011

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

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

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