# Java > Interfaces Graphiques en Java > AWT/Swing >  Dessiner un arbre binaire en java?

## zenaare

Bonjour,

Voil je suis entrain de concevoir une petite application en java sur les AVL avec interface graphique et reprsentation dynamique de l'arbre sur un Canvas, dans le cadre d'un projet pour les cours.

Et j'ai un petit soucis pour dessiner mon arbre, j'ai l'impression que ca peut se faire recurssivement mais je n'y arrive pas, je n'arrive pas  determiner la position des noeuds fils en fonction de leur noeud pre...je suppose que la hauteur de l'arbre intervient dans tout ca mais  force de me creuser la tte je commence  m'emmeler les pinceaux :p

Voil donc si quelqu'un pouvait m'aiguiller ca m'aiderait beaucoup ^^

Merci d'avance !  ::D: 

PS : Je savais pas trop ou poster ma question, dsl si je me suis tromp d'endroit  ::oops::

----------


## dark&wise

j'aimerai bien travailler avec toi cher ami, je ne suis pas trs fort en programmation et j'ai eu mon premier cour de ABR et AVL la semaine dernire,

je te propose d'envoyer un bout de code,pour qu'on puisse travailler dessus et pour voir les lacunes ( s'il y en a ). Je vais envoyer quelque chose le plus tt possible ...

 ::mrgreen::

----------


## xavlours

Bonjour,

pour dessiner un arbre dans un Canvas ou un JPanel, il y a plusieurs choses  prendre en compte. Je suppose que tu as 2 classes : Noeud et Arbre (a peut se faire avec seulement la classe Noeud, mais bon).

La classe Arbre doit permettre de calculer la largeur et la hauteur totales ncessaires au dessin de ton arbre binaire (en fonction de la profondeur de l'arbre, et du remplissage si t'es motiv). Elle place aussi le premier noeud (en haut au milieu, je pense)

La classe Noeud doit permettre d'avoir l'intitul du noeud (getName), et d'accder aux fils droit et gauche (getRightChild getLeftChild). Ensuite ta mthode ressemble  a :

```

```

Comme a l'objet de type Arbre appelle _drawNode(g, root, monCanvas.getWidth() / 2, 0)_, et a lance rcursivement l'arbre entier.

----------

