Sur une fenetre je représente des composants avec SWING. (Voir pdf joint)
Le composant principal sur fond gris, noté "g1" contient les composants "comp" (rectangles cyan) et également les composants "borne" (points noirs).
Quand je positionne mes composants et mes bornes en coordonnées absolues, dans le conteneur principal g1, tout va bien, chaque composant à ses 2 bornes noires au bon endroit, comme visible sur l'annexe 1.
Afin de dessiner plus facilement mes bornes sur le composant cyan, je définit le composant "c0", puis, je créé une borne "borne0", dont les coordonnées sont pour le test : x=10 et y=30).
Je précise que le parent de la borne est le composant rectangulaire cyan "c0", afin que la borne apparaisse dans ce dernier, au coordonnées à présent relatives à c0, en 10 et 30 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 private static void attribComp(int r, int ix, int iy, int c) { /*new Composant*/ Var.comp[c] = new Composant(r, ix, iy, c); Var.borne[c*2] = new Borne (r, c, c*2, 0, ix, iy); Var.comp[c].add(Var.borne[0]); System.out.println("***********"); System.out.println("parent de la borne 0 : "+ Var.borne[0].getParent().getName() + " x de la borne sur c0 : " + Var.borne[c*2].getX() + " y de la borne sur c0 : " + Var.borne[c*2].getY()); System.out.println("***********"); Var.g1.remove(Var.recept[r]); Var.g1.add(Var.comp[c]); Var.g1.repaint();
Cependant, si la borne apparait bien, elle continue à s'afficher aux coordonnées du conteneur principal "g1" en 10 et 30, et non sur c0, pourtant définit comme parent par programmation et sur le retour de la console :
***********
parent de la borne 0 : C_0 x de la borne sur c0 : 10 y de la borne sur c0 : 30
**********
Ma question est donc la suivante :
Faut-il bien définir un composant comme parent, pour pouvoir ensuite positionner dessus d'autres éléments en coordonnées relatives sur ce dernier?
Quelle bétise flagrante fait que ma borne s'affiche par rapport au conteneur principal "g1" et non par rapport au parent demandé "c0"?
Merci à tous ceux qui auront la volonté de comprendre et peut-être m'aider à résoudre mon problème!.....









Répondre avec citation
Partager