Gibt es eine Methode, um zu bestimmen, ob in JgraphX zwei Scheitelpunkte verbunden sind? Die Methode isConnectable()
gibt nur dann true zurück, wenn der Scheitelpunkt verbunden ist.Ermitteln, ob zwei Scheitelpunkte verbunden sind jGraphX
2
A
Antwort
0
Sie können es überprüfen, indem Sie die Kanten überprüfen. In diesem Beispiel ist cell1 die erste Zelle, die Sie haben, und cell2 die Zelle, die Sie überprüfen möchten, ob es mit cell1 verbunden ist.
for (int i = 0; i < cell1.getEdgeCount(); i++) {
mxCell source = ((mxCell) cell1.getEdgeAt(i)).getSource();
mxCell target = ((mxCell) cell1.getEdgeAt(i)).getTarget();
if (source == cell2 || target == cell2)
return true;
else
return false;
}
Sie benötigen sowohl die Quell- und Ziel ‚überprüfen führen, dass Sie sich nicht sicher sein kann, wenn cell1 wird die Quelle oder das Ziel in dieser Iteration sein. Auf diese Weise iterieren Sie jede Zelle, die mit cell1 verbunden ist, und überprüft, ob es gleich einer zweiten Zelle ist.
Ist hier der Operator '== 'oder sollte stattdessen die' equals() 'Methode verwendet werden? – entpnerd
@entpnerd Sie sollten '==' verwenden. Ich bin mir nicht ganz sicher, aber ich denke, die '.equals()' Methode kann nur in Objekten implementiert werden, die das _class_ Objekt erweitern. Soweit ich weiß, erweitert mxCell es nicht (aber Sie sollten es überprüfen). Wie auch immer, grundsätzlich sollten Sie '.equals()' verwenden, um Strings zu vergleichen, und '==', um andere Objekte zu vergleichen. Werfen Sie einen Blick in diesem Artikel, es wird definitiv besser erklären, als ich http://www.programmerinterview.com/index.php/java-questions/java-whats-the-difference-between-equals-and/ – Fagundes