2015-09-16 4 views
1

J'utilise JGraphT pour créer un graphique et je veux être capable de le visualiser et de le manipuler. Il y a quelques exemples qui montrent comment visualiser le graphique, mais il semble que cela implique beaucoup de code manuel pour mettre en forme les vertices, etc. Je me demandais s'il y avait un algorithme de disposition de graphique qui pourrait automatiser ce processus déjà dans JGraph avec un petit exemple. Surtout les graphiques que je dessine sont des graphes acycliques dirigés. J'ai déjà dessiné les graphiques en les exportant au format .dot et les affiche en utilisant dot, mais j'ai besoin d'une petite interaction maintenant.Algorithmes de mise en page graphique pour JGraphT

Répondre

2

Depuis JGraph semble être maintenant mxGraph, mais JGraphT JGraph 5,13 intégrer, ce n'est pas facile, mais je l'ai trouvé this doc et le morceau de code suivant fonctionne:

// this a a JGraphT graph 
    ListenableDirectedGraph<TableColumn, DefaultEdge> dependencyGraph = getDependencyGraph(); 

    JGraphModelAdapter adapter = new JGraphModelAdapter(dependencyGraph); 

    JGraph jgraph = new JGraph(adapter); 


    JGraphLayout layout = new JGraphHierarchicalLayout(); // or whatever layouting algorithm 
    JGraphFacade facade = new JGraphFacade(jgraph); 
    layout.run(facade); 
    Map nested = facade.createNestedMap(false, false); 
    jgraph.getGraphLayoutCache().edit(nested); 

    JScrollPane sp = new JScrollPane(jgraph); 
    this.add(sp);