2016-04-06 2 views

Répondre

0

Vous pouvez le vérifier en vérifiant les contours. Dans cet exemple, étant cell1 la première cellule que vous avez et cell2 la cellule que vous voulez vérifier si elle est connectée avec cell1.

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; 
} 

Vous devez vérifier la source et la cible parce que vous ne pouvez pas être sûr si cell1 sera la source ou la cible dans cette itération. De cette façon, vous itérez chaque cellule connectée à cell1 et vérifie si elle est égale à une seconde cellule.

+0

L'opérateur '==' est-il approprié ici ou faut-il utiliser la méthode 'equals()'? – entpnerd

+0

@entpnerd Vous devriez utiliser '=='. Je ne suis pas complètement sûr, mais je suppose que la méthode '.equals()' ne peut être implémentée que dans les objets qui étendent l'objet _class_. D'après ce que je sais, mxCell ne l'étend pas (mais vous devriez le vérifier). De toute façon, vous devriez utiliser '.equals()' pour comparer les chaînes, et '==' pour comparer les autres objets. Jetez un oeil dans cet article, il va certainement expliquer mieux que moi http://www.programmerinterview.com/index.php/java-questions/java-whats-the-difference-between-equals-and/ – Fagundes