IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques en Java Discussion :

SWT - superposers dessins multiples sur canvas


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 4
    Par défaut SWT - superposers dessins multiples sur canvas
    Bonjour,

    Je cherche au clic de souris à rajouter un carré supplémentaire (positionné aléatoirement) sur un canvas.
    Curieusement, tous les carrés sont déplacés aléatoirement (au lieu de rester fixes) et le dernier est bien rajouté.

    Quelque chose m'échappe. Quelqu'un a une idée ?
    Merci pour votre aide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    bouton_2.addSelectionListener(new SelectionAdapter() {
    			@Override
    			public void widgetSelected(SelectionEvent e) {
    				canvas_2.addPaintListener(new dessin_canvas_2());
    				canvas_2.redraw();
    			}
    		});
    ....
    ....
     
    private class dessin_canvas_2 implements PaintListener {
    		  public void paintControl(PaintEvent e) {
     
    	                GC monGC=e.gc;
    	                Color couleurrouge=new Color(dessins_divers.display, 255,0,0);
    			 int xxx=(int) (Math.random()*165);
    			 int yyy=(int) (Math.random()*165);
    			 monGC.setForeground(couleurrouge);
    			 monGC.drawRectangle(xxx ,yyy ,10,10);		
    					}
     
    	}
     
    }

  2. #2
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 312
    Par défaut
    Bonjour,

    Lorsque tu cliques sur bouton2, celui-ci ajoute à canvas_2 un nouveau dessin_canvas_2 ce qui crée le nouveau dessin mais à aucun moment tu lui demande d'enlever les autres qui sont donc toujours là.

    Quand tu appelles canvas_2.redraw() java execute la methode paintControl de chaque dessin et recalcule donc les coordonnées de chaque dessin.
    Pour eviter cela calcules les coordonées aléatoires en dehors de la methode paintControl. DAns le constructeur par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    private class dessin_canvas_2 implements PaintListener {
     
              int xxx,yyy;
     
              public dessin_canvas_2() {
                             xxx=(int) (Math.random()*165);
    			 yyy=(int) (Math.random()*165);
              }
     
              public void paintControl(PaintEvent e) {
     
    	                GC monGC=e.gc;
    	                Color couleurrouge=new Color(dessins_divers.display, 255,0,0);
    			 monGC.setForeground(couleurrouge);
    			 monGC.drawRectangle(xxx ,yyy ,10,10);		
    					}
     
    	}
     
    }

  3. #3
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 4
    Par défaut
    Génial !!!
    Un grand merci pour ton aide.

Discussions similaires

  1. Mettre un event sur un objet dessiné dans un Canvas
    Par calogerogigante dans le forum Tkinter
    Réponses: 11
    Dernier message: 30/01/2010, 09h05
  2. Affichage d'un dessin dans un Canvas lors d'un clic sur une image
    Par totooo dans le forum Développement Mobile en Java
    Réponses: 1
    Dernier message: 19/06/2009, 11h26
  3. [SWT] Dessin périodique sur canvas
    Par Knuckles dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 29/11/2008, 13h33
  4. Réponses: 5
    Dernier message: 23/09/2006, 12h40
  5. Réponses: 1
    Dernier message: 05/08/2006, 20h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo