Das Problem ist nicht ganz trivial und ich muss das On-topic diskutieren.
Also erstmal ich hab mit Maven GitHub - nidi3/graphviz-java: Use graphviz with pure java eingebunden.
Dann verstehe ich nicht genau, wie sich Nodes und Graph zusammensetzt:
Graph g = Factory.graph("Dateien").directed().generalAttr().with(RankDir.LEFT_TO_RIGHT).with(parent.no);
Graphviz.fromGraph(g).width(900).render(Format.PNG).toFile(new File("dateien1.png"));
In der zweiten Zeile bekomme ich eine NPE:
Exception in thread "main" java.lang.NullPointerException
at guru.nidi.graphviz.engine.Renderer.toFile(Renderer.java:44)
at obige Zeile...
Vielleicht erstmal, was ich vor hab:
Ab einem bestimmten Verzeichnis möchte ich das Verzeichnis und alle Unterverzeichnisse in einem Baum darstellen (so ähnlich wie im Explorer, nur halt ein „richtiger“ Baum):
//...
e.no = Factory.node(level + " " + index++).with(Records.of(ff.getName(), "" + ff.getSize(), "" + ff.getType()));
//...
parent.no.link(e.no);
//...
Verlinke ich etwas falsch?
Beim offiziellen Beispiel findet die Verlinkung schon bei der Initialisierung des Graph statt:
//...
Graph g = graph("example3").directed()
.generalAttr().with(RankDir.LEFT_TO_RIGHT)
.with(
node0.link(
between(loc("f0"), node1.loc("v", SOUTH)),
between(loc("f1"), node2.loc(WEST)),
between(loc("f2"), node3.loc(WEST)),
between(loc("f3"), node4.loc(WEST)),
between(loc("f4"), node5.loc("v", NORTH))),
node2.link(between(loc("p"), node6.loc(NORTH_WEST))),
node4.link(between(loc("p"), node7.loc(SOUTH_WEST))));
Graphviz.fromGraph(g).width(900).render(Format.PNG).toFile(new File("example/ex3.png"));
(Ganz verstehe ich dieses wunderbare fluent-Interface auch nicht. )
Weiß jemand, wo der Fehler sich befindet?