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

AWT/Swing Java Discussion :

clear telShape,mais telShape a été dessiné de facon indelebile dans paintCompon ?


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Par défaut clear telShape,mais telShape a été dessiné de facon indelebile dans paintCompon ?
    Bonjour

    Voila je commence à arriver à ce que je voulais faire !
    Je résume, j'utilise la méthode PaintComponent qui dessine un ensemble de courbes qui représente des DrawLine de simulations anterieures etc... C'est bien parce qu'en cliquant sur pause l'utilisateur voir toujours son graphe !
    voila comment je procède dans paintComponent :
    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
    /**
    	 * Dessin des axes et des graduations 
    	 */
    	public void paintComponent(Graphics g) {
        	super.paintComponent(g);
            Graphics2D g2d = (Graphics2D) g;
      .....
    if (app.getPanneauBoutons().getIsPause())
    { 
     for(FormeColoree shape3  :  shapes3) {
    //On dessine la forme
       shape3.dessiner(g2d); //dessiner est ma méthode faite maison ou
    	    		}
      for(FormeColoree shape4  :  shapes4) {
      //On dessine la forme
         shape4.dessiner(g2d);
    	    		}
    Mais par exemple si mon temps de simulation est de 2 heures, et que on est à 2H15, si l'utilisateur appuie sur pause : il voit l'ancienne courbe et la nouvelle courbe, et ça c'est chiant ! Pourtant j'ai bien fait des clear
    Au moment du dépassement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    else { // Lorsqu'on arrive au bout du graphe on efface et décale la courbe vers la gauche
    //Graphics g = this.getGraphics();
    abcisseEnCours2 = this.ABCISSE_MAX * (100 - this.DECALAGE) / 100;
    g2d.clearRect(0,0,LARG,HAUT);
    shapes4.clear();shapes3.clear();
    this.paintComponent(g);repaint();
    this.afficherAllPoints(g);
    }
    Mais y a pas à redire les shapes qui ont été peintes restent ! bien qu'elles aient été "clear()"
    Les choses que j'ai dessiné dans PaintComponent sont elles indélébiles ? bien que je les ai supprimé ??

  2. #2
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Essaie peut-être sans le super.paintComponent().
    Mais c'est vraiment parce que je ne vois rien d'aberrant dans ton code...

  3. #3
    Membre confirmé Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Par défaut et ça ça fait quoi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	if (g2d != null) {
    				g2d.clearRect(0,0,LARG,HAUT);
    				paintComponent(g);}
    sa supprime et efface ?
    ou juste efface ?

  4. #4
    Membre confirmé Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Par défaut
    c bon j'y suis arrivé je sais pas trop pourquoi !!!
    mais j'y suis arrivé, je mettais ptet pas le clear shape au bon endroit
    merci les keums !

  5. #5
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Peux-tu nous dire comment tu as fait ? (histoire que ça serve pour les autres personnes qui se retrouveraient dans la même situation)

  6. #6
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Bonjour,

    c'est étrange ... Sauf en appelant repaint() avec des coordonnées en paramètres, normalement tout le composant est effacé puis redessiné (surtout si il est opaque).

    Je pense que si il y a des Shapes qui sont dessinées alors que tu ne le veux pas, c'est que tu as oublié de les enlever de la List<Shape>.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Dessin d'une image dans un GeneralPath
    Par seiryujay dans le forum AWT/Swing
    Réponses: 10
    Dernier message: 12/09/2006, 11h48
  2. Réponses: 4
    Dernier message: 10/09/2006, 19h06
  3. Dessin avec Imager.. erreur dans mon script
    Par Chekov dans le forum Modules
    Réponses: 2
    Dernier message: 18/06/2006, 14h14
  4. Réponses: 7
    Dernier message: 04/06/2006, 17h00
  5. [MFC] Dessin d'un CButton dans une CView ?
    Par ZeMike dans le forum MFC
    Réponses: 1
    Dernier message: 12/04/2006, 15h06

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