Est il possible ?

Résolu
charmeurga Messages postés 28 Date d'inscription dimanche 2 novembre 2008 Statut Membre Dernière intervention 25 novembre 2011 - 26 juin 2011 à 07:12
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 - 1 août 2011 à 23:18
Bonjour, voici mon code :

public void paintComponent(Graphics g){
/*
*
*
*
*/

//Taille d'un carre (pour en avoir 32*32 dans le panel)
int tailleCarrex = getWidth()/32;
int tailleCarrey = getHeight()/32;

for(int i=0; i<points.size(); i++){
//Indique qu'on dessine le carre d'une certaine couleur
g.setColor(couleurs.get(i));
//dessin du carré

g.fillRect(
(int)points.get(i).getX()-((int)points.get(i).getX()%tailleCarrex),//x
(int)points.get(i).getY()-((int)points.get(i).getY()%tailleCarrey),//y
tailleCarrex,//largeur
tailleCarrey//hauteur


);
/*
*
*
*/


Je cherche à dessiner un flèche sur la rectangle

Comme dans cet exemple

19 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
27 juin 2011 à 09:01
Voilà une méthode qui permet de faire ca :

public void dessinerFleche(Graphics g, int x, int y, int w, int h){
g.drawLine(x+w/2, y, x+w/2, y+h);
g.drawLine(x+w/2, y, x, y+h/2);
g.drawLine(x+w/2, y, x+w, y+h/2);
}


Il ne te reste plus qu'à l'appeler dans paintComponent
3
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
4 juil. 2011 à 08:41
/**
  * Methode qui permet de dessiner une fleche allant vers le haut
  */
public void dessinerFlecheHaut(Graphics g, int x, int y, int w, int h){
g.drawLine(x+w/2, y, x+w/2, y+h);
g.drawLine(x+w/2, y, x, y+h/2);
g.drawLine(x+w/2, y, x+w, y+h/2);
}


/**
  * Methode qui permet de dessiner une fleche allant vers la gauche
  */
public void dessinerFlecheGauche(Graphics g, int x, int y, int w, int h){
g.drawLine(x, y+h/2, x+w, y+h/2);
g.drawLine(x, y+h/2, x+w/2, y);
g.drawLine(x, y+h/2, x+w/2, y+h);
}
3
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
26 juin 2011 à 20:24
salut
et bien dans le meme style ;o) tu fais 3 drawline ... ;o) le plus élegant serait quand meme de faire un drawShape ;o) et de definir ta shape ;o)

GodConan ;o)
0
charmeurga Messages postés 28 Date d'inscription dimanche 2 novembre 2008 Statut Membre Dernière intervention 25 novembre 2011
28 juin 2011 à 01:11
Merci pour vos aides

@Julien39 j’arrive pas à faire l’appel de cette fonction dans ma ListenerPanel.

si je fait l’appel dans paintComponent comme vous m’avez indiquez, tout les carrés serons marquées par des flèche (je veut seulement si coucher un RadioBouton )pour le "h" et "w" signifie quoi ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
28 juin 2011 à 06:37
fait du MVC ;o) ... c est quand plus simple et logique...

surtout avec une matrice ;o) (ton document)
dans le paint tu te contente de dessiner l état de ta matrice en fonction des valeures de chaque position (au pire une close switch/case) et dans ton listenner tu modifies cette etat avec un petit repaint() et c est magic... ;o)


GodConan ;o)
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
28 juin 2011 à 08:54
Il faut appeler cette fonction dans la méthode paintComponent

g : le Graphics en paramètre de paintComponenet
x : l'abscisse à laquelle on dessine la fleche (
y : l'ordonnée à laquelle on dessine la fleche
w : la largeur de la fleche
h : sa hauteur
0
charmeurga Messages postés 28 Date d'inscription dimanche 2 novembre 2008 Statut Membre Dernière intervention 25 novembre 2011
30 juin 2011 à 06:01
bonjour

Ça va ça marche mais comment je peux modifier le code pour avoir de flèche dans un sens différant
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
30 juin 2011 à 06:45
ben tu fais une methode dessineFleche pour chaque type de fleche... ;o)


GodConan ;o)
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
30 juin 2011 à 08:41
Si tu poses cette question, c'est que tu n'as pas bien compris ce qui se passait dans le code que je t'ai donné :

la méthode drawLine prend en paramètre quatre arguments :
drawLine(x1, y1, x2, y2)
x1 : abscisse du premier point
y1 : ordonnee du premier point
idem pour x2 et y2

Il suffit ensuite de placer tes points comme il faut ; avec la notation suivante :
x : l'abscisse à laquelle on dessine la flèche (
y : l'ordonnée à laquelle on dessine la flèche
w : la largeur de la flèche
h : sa hauteur

pour tracer une diagonale du haut gauche vers le bas droit,
g.drawLine(
x, //Le point haut gauche a pour coordonnées (x, y)
y,
x+w, //Le point bas droit a pour coordonnées (x+w, y+h)
y+h
)

Voilà, tu as tout compris, faire les flèches est maintenant quelque chose d'aisé pour toi
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
30 juin 2011 à 18:09
Ensuite pour dessiner les 4 types de fleche ;o) tu as le choix ;o) soit tu adaptes les draw aux 4 cas soit tu ne change pas la methode mais tu aplique une tranformation au context graphic ;o) ;o) perso je prefere la 2ndz solution ;o) bcp plus élégante ...

GodConan ;o)
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
1 juil. 2011 à 09:35
Oui, c'est vrai, l'idéal serait même d'avoir un polygone d'enregistré dans la classe et d'effectuer une rotation de celui-ci.

Mais, dans un premier temps, dessiner les flèches une à une ne pose pas de gros problèmes.
0
charmeurga Messages postés 28 Date d'inscription dimanche 2 novembre 2008 Statut Membre Dernière intervention 25 novembre 2011
2 juil. 2011 à 00:44
j'arrive pas !
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
2 juil. 2011 à 09:21
A quoi faire ?
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
2 juil. 2011 à 09:21
Donne nous ton code si tu veux
0
charmeurga Messages postés 28 Date d'inscription dimanche 2 novembre 2008 Statut Membre Dernière intervention 25 novembre 2011
4 juil. 2011 à 02:21
flèche dans ce sens
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
4 juil. 2011 à 20:39
t es trop bon.......!!!!

GodConan ;o)
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
5 juil. 2011 à 08:25
Oui, c'est vrai que tu avais tous les éléments pour coder ca toi même charmeurga.

Mais bon, je pense qu'il n'avait pas bien saisi la façon d'utiliser drawLine, avec deux exemples ca se comprendra mieux
0
charmeurga Messages postés 28 Date d'inscription dimanche 2 novembre 2008 Statut Membre Dernière intervention 25 novembre 2011
9 juil. 2011 à 04:21
oui Julien39, vous avez plein raison
mais ça marche po pour la Methode qui permet de dessiner une fleche allant vers la gauche



et ce bon pour "le vers la haut"
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
1 août 2011 à 23:18
ou!! ;o) que c est pas beau ;o) ... utilise donc des images ;o) c est bien plus agréable...

GodConan ;o)
0
Rejoignez-nous