#java #user-interface #interface #graph #jung
#java #пользовательский интерфейс #интерфейс #График #юнг
Вопрос:
Я нахожусь в процессе создания интерфейса для рисования блок-схем, подобных диаграммам (по сути, схемным схемам), которые содержат узлы, которые выглядят следующим образом:
-------
in1 -->| |---> out1
| |
in2 -->| |
| |
in3 -->| |---> out2
-------
т.е. каждый блок имеет несколько входных ребер и несколько выходных ребер. Для наглядности имеет больше смысла, если все входные ребра сгруппированы с одной стороны, а все выходные ребра сгруппированы с другой.
Интерфейс будет включать в себя подключение пользователем ввода и вывода различных блоков вместе.
Я пытаюсь найти библиотеку Java, которая поможет мне легко создать такой интерфейс, который также будет иметь автоматические инструменты компоновки для поддержания чистоты диаграмм. http://www.jgraph.com / и http://jung.sourceforge.net / похоже, они будут делать большую часть того, что мне нужно, но я не уверен, что узлы будут выглядеть так, как указано выше, где входы и выходы объединены вместе. Например, я не вижу, как я мог бы сделать это с Юнгом.
Может кто-нибудь подсказать, какую библиотеку и следует использовать, и что я могу сделать, чтобы узлы выглядели так, как указано выше?
Комментарии:
1. IIRC вы можете определить расположение портов в JGraph, я не знаком с JUNG. Из изображений ясно, что вы можете ; извините, я не помню больше.
2. Возможно, вы можете заглянуть в Eclipse Graphical Editing Framework (GEF), и в этом блоге обсуждается, как кодировать GEF http://www.vainolo.com/2011/05/24/the-quest-for-the-perfect-java-graph-framework /
3. Итак, вы нашли решение этого вопроса?
Ответ №1:
Вы также можете рассмотреть yWorks — это семейство продуктов для построения диаграмм для приложений Java.. Я только начал оценивать их редактор диаграмм, еще не имея большого опыта в этом.
Ответ №2:
Мне очень нравится graphviz от AT amp; T. Я не уверен, что вы согласитесь, но об этом стоит подумать.
Комментарии:
1. Это не будет хорошо работать для того, что мне нужно, так как мне нужны пользователи для интерактивного подключения узлов, а graphviz на самом деле не подходит для динамически изменяющихся графиков.