Как мне поступить, чтобы сделать интерактивную программу с функцией перетаскивания и графиком стрелки - PullRequest
1 голос
/ 29 января 2012

Я делаю проект колледжа, который я должен закончить через 3 месяца.И у меня есть 8 часов в неделю, чтобы провести в этом проекте.

Проект состоит в создании графического интерфейса, который показывает много прямоугольников рядом друг с другом, которые должны быть подвижными.Она должна быть очень похожа на вкладки в браузере Chrome, где вы можете перетаскивать их в любое удобное для вас положение.

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

instance of the problem

Изображение показано до и после перетаскивания одного из прямоугольников.

Поскольку Java - мой первый языкЯ хотел бы использовать его.

Мой вопрос: какую инфраструктуру, API я должен использовать для этого проекта.Какой будет самый простой и быстрый способ сделать это?Должен ли я использовать Swing?или JavaFX?или GWT?или другой вариант?

Есть ли API для обработки стрелок, соединяющих объекты?Может быть, тот, который используется для представления графиков, может быть в порядке.

Редактировать: Я ничего не знаю ни о Swing, ни о JavaFX.Так что же было бы более полезным, если учесть, что у меня не так много времени в этом семестре, потому что я очень занят?

Ответы [ 2 ]

2 голосов
/ 29 января 2012

Это не должно быть слишком сложно писать с нуля.

Используйте этот сайт: http://www.codeproject.com/Articles/116088/Draggable-Components-in-Java-Swing для перетаскиваемых компонентов

Нарисуйте стрелки с некоторой параметризацией (математическая формула) для половины овала. Передайте путь рисования в объект пера java.awt.Graphics2D.

0 голосов
/ 29 января 2012

Возможно, вы захотите проверить Универсальная сетевая / графическая среда Java .
Он имеет некоторую расширенную поддержку для создания редактируемых графиков, сохраняя связь между узлами и ребрами.

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

Но если у вас нет опыта работы с Swing, лучше сначала начать изучать основы SWING, так как среда JUNG в значительной степени требует хороших базовых знаний о самом Swing.

...