Ich bin nicht sehr sicher, was Ihr Ziel ist, also werde ich mein Bestes versuchen, um zu helfen.
Sie können zuerst die die Wahrscheinlichkeiten darstellen, indem Sie eine benutzerdefinierte Edge und Edge Factory-Klassen definieren. Was ich tat, war:
0 Importe:
import org.apache.commons.collections15.Factory;
1. in Ihrer benutzerdefinierten Klassen hinzufügen. Sie Rand benutzerdefinierte Klasse sein könnte so etwas wie:
public static class MyEdge {
private int flow;
private int capacity;
private String name;
private int eIndex;
public MyEdge(String name, int eIndex) {
this.name = name;
this.eIndex = eIndex;
}
public int getCapacity() {
return this.capacity;
}
public void setCapacity(int edgeCapacity) {
this.capacity = edgeCapacity;
}
public int getFlow() {
return this.flow;
}
public void setFlow(int edgeFlow) {
this.flow = edgeFlow;
}
public String toString() {
return this.name;
}
}
Die benutzerdefinierte Kante Fabrik ist, was Ihre Kanten tatsächlich erzeugt jedes Mal, wenn sie auf der Leinwand grafisch zeichnen, könnte es wie folgt aussehen:
public static class MyEdgeFactory implements Factory {
private static int defaultFlow = 0;
private static int defaultCapacity = 0;
private int edgeCount;
private MyEdgeFactory() {
}
public MyEdge create() {
String name = "E" + edgeCount;
MyEdge e = new MyEdge(name, edgeCount);
edgeCount++;
e.setFlow(defaultFlow);
e.setCapacity(defaultCapacity);
return e;
}
}
2. Informieren Sie Ihren Visualisierungsbetrachter, wie die Kantenbeschriftungen angezeigt werden; Sie werden dies in hinzufügen müssen, wohin Sie Ihr Diagramm und VisualizationViewer Objekt (vv) erstellen möchten:
vv.getRenderContext().setEdgeLabelTransformer(new Transformer() {
public String transform(MyEdge e) {
return (e.toString() + " " + e.getFlow() + "/" + e.getCapacity());
}
});
Jetzt jedes Mal wenn Sie einen Rand erstellen, ist es Etikett der Form sein „E0 0/0 "," E1 0/0 "und so weiter.
Ich werde bald detaillierte Tutorials und Code auf my blog veröffentlichen, so dass Sie diesen Raum sehen können, wenn Sie viel Zeit mit dem Projekt verbringen, an dem Sie gerade arbeiten.