public void removeNode(GraphNode a){        
        for(Edge e:a.getNeighbors()){
            for(Edge edge:e.getGNode().getNeighbors()){
                if(edge.getGNode().equals(a)) e.getGNode().removeNeighbor(a);
            }
        }
        this.nodes.remove(new Point(a.getX(),a.getX()));
    }