Q tal :
Pues yo trabaje con uno similar y lo q hize fue hacer una clase llamada mi_panel en la cual estaba escuchando los clics del raton para trazar un circulo y si hacia un click dentron de un nodo pues escuchaba el otro click para trazar una arista lo mas practico para mi fue usar
objetos de la clase Vector por q son dinamicos y facilita la insercion y eliminacion de los objetos.
Espero q sirva un poco mi comentario y puedas entender lo q kise decir...
Q salga todo bien