pues yo entregue un proyecto similar...solo que lo deje a medias
por que los nodos se me enciman...pero los programo en un Applet...
habia creado un tema para pedir ayuda de como dibujarlo pero al final encontre esta solucion...
/*Metodo recursivo que dibuja el arbol empezando de la raiz hasta la ultima hoja*/
public void dibujaNodo
(Graphics g,
int x,
int y,NodoA raiz
) {
NodoA aux=raiz;
//si la raiz no esta vacia--tiene al menos un elemento
if(aux!=null)
{
g.
setColor(new Color(255,
228,
196)); g.fillOval(x,y,25,25);
g.drawOval(x,y,25,25);//solo dibujamos el nodo raiz en X Y
g.
setColor(new Color(165,
42,
42)); g.drawString(aux.getinfo()+"",x+9,y+16);//dibujamos la info de raiz en medio del circulo
/*si hay algo en la izquierda*/
if(aux.getizq()!=null)
{
//Imprimir linea de x,y a x-TAM, y+TAM
g.drawLine(x+5,y+22,x-35,y+50);
/*se llama el metodo pero ahora con nuevas coordenadas y otro nodo*/
dibujaNodo(g,x-50,y+50,aux.getizq());
}
/*si hay algo en la derecha*/
if(aux.getder()!=null)
{
//Imprimir linea de x,y a x+TAM, y+TAM
g.drawLine(x+20,y+22,x+55,y+50);
/*se llama el metodo pero ahora con nuevas coordenadas y otro nodo*/
dibujaNodo(g,x+50,y+50,aux.getder());
}
}
}
ya solo en el metodo paint
g.drawImage(titulo,120,0,242,93,this);
/*Solo acomodamos los componentes*/
txtDato.setBounds(420,30,30,20);
insertar.setBounds(440,60,60,20);
eliminar.setBounds(370,60,60,20);
rEn.setBounds(20,95,120,20);
rPos.setBounds(160,95,120,20);
rPre.setBounds(310,95,120,20);
h.setBounds(168,125,100,20);
dibujaNodo(g,200,150,A.getraiz());
}
bueno pues salu2 a todos