В настоящее время я работаю над программным обеспечением, позволяющим создавать гейм-книги, и я пытаюсь добавить графическое представление. Я создаю граф, где вершины - это абзацы, а края - между ними.JGraph/JGraphX: Создание очень сложного графика
В созданном мной учебнике имеется более 100 параграфов, и все они чрезвычайно переплетаются. Сначала я попытался использовать JGraphX, но результатом стал маш после применения макета. Поскольку помощь и примеры для JGraphX разрежены, я не мог ее решить, поэтому я попробовал удачу с JGraph 5.13, потому что у него был фасад (не удалось найти эквивалент JGraphX).
Моя проблема заключается в том, что фасад работает очень хорошо для первых 87 ребер, которые я добавляю к нему. Когда я добавляю еще одно, я получаю это исключение:
Exception in thread "main" java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.ComparableTimSort.mergeHi(Unknown Source)
at java.util.ComparableTimSort.mergeAt(Unknown Source)
at java.util.ComparableTimSort.mergeForceCollapse(Unknown Source)
at java.util.ComparableTimSort.sort(Unknown Source)
at java.util.ComparableTimSort.sort(Unknown Source)
at java.util.Arrays.sort(Unknown Source)
at com.jgraph.layout.hierarchical.JGraphMedianHybridCrossingReduction.medianRank(Unknown Source)
at com.jgraph.layout.hierarchical.JGraphMedianHybridCrossingReduction.weightedMedian(Unknown Source)
at com.jgraph.layout.hierarchical.JGraphMedianHybridCrossingReduction.run(Unknown Source)
at com.jgraph.layout.hierarchical.JGraphHierarchicalLayout.run(Unknown Source)
Я не уверен, что делать дальше. Является ли JGraph 5.13 не для создания такого хаотического графика? Есть ли какой-то эквивалент фасада JGraphX, который я мог бы использовать? Я что-то упускаю?
Вы можете вставить код, где вы делаете сравнение –
Эта ошибка указывает на неправильную реализацию 'Comparator', вы ее написали? Если да, то, пожалуйста, покажите это. – Katona
Я сам не делал сравнения, исключение происходит, когда я делаю этот код (и на графике имеет 88 или более ребер): 'hir.run (graphFacade); Map