Bonjour les amis,
Je suis entrain d'implémenter un PieMenu.
j'ai crée tout les éléments de base, a savoir la forme des Items, l'Item avec la gestion des évènements. Je suis donc en possession des classes suivantes:
Item - ItemShape - ItemEvent - ItemListener
Maintenant je commence à implémenter la classe PieMenu:
J'ai à placer mes différents Item sur le contener de mon PieMenu qui est un JLayeredPane.
je bloque sur le positionnement des Items, j'aimerais les placé de manière circulaire en fonction du centre du JLayerePane et du nombre des Items du menu.
Ici la surcharge de la méthode setBounds:
comme vous pouvais vous en douté, le problème vient de cette partie du code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 @Override public void setBounds(int x, int y, int width, int height) { float xC = x + width / 2f; float yC = y + height / 2f; super.setBounds(x, y, width, height); for (int i = 0; i < myNbElements; ++i) { myElements.get(i).setBounds( (int) (xC + width / 2f * Math.cos(Math.toRadians(myStartAngle + i*(360/myNbElements)))+ xC), (int) (yC - height / 2f * Math.sin(Math.toRadians(myStartAngle+ i*(360/myNbElements)))+ yC) , 50, 50); } }
merci d'avance pour vos indications
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 myElements.get(i).setBounds( (int) (xC + width / 2f * Math.cos(Math.toRadians(myStartAngle + i*(360/myNbElements)))+ xC), (int) (yC - height / 2f * Math.sin(Math.toRadians(myStartAngle+ i*(360/myNbElements)))+ yC) , 50, 50); }![]()
Partager