Graphics => dessin sur un JLayeredFrame qui s'efface automatiquement

Graphics => dessin sur un JLayeredFrame qui s'efface automatiquement - Java - Programmation

Marsh Posté le 14-06-2005 à 15:06:24    

Voilà, j'ai réalisé une fonction qui dessine des trajectoires sur un JLayeredPane (en fait j'ai essayé aussi de dessiner directement sur un JLabel, c'est pareil).
 
La fonction de dessin :  

Code :
  1. /**Affiche dans le calque, les trajectoires des copépodes pour les images 0 à rang
  2.      * @param rang - la limite à utiliser pour les trajectoires
  3.      */
  4.     private void showTrajectoire(int rang){ 
  5.         DebugGraphics g = new DebugGraphics(layer.getGraphics());
  6.         int couleur[]= copepodtracker.kernel.ListeCouleur.couleur;
  7. int c=0;
  8.        
  9.         for(Trajectoire trajectoire : listeTrajectoire){
  10.             if(rang>= trajectoire.getFrame()){     
  11.                 ArrayList<Coordonnee> traj = trajectoire.getTrajectoire();
  12.                 int id = trajectoire.getId();
  13.                 g.setColor(new Color(couleur[id % couleur.length]));
  14.                 for(Coordonnee coord : traj){
  15.                     int cx = (int)coord.getX();
  16.                     int cy = (int)coord.getY();
  17.                     g.drawLine(cx, cy, cx, cy);
  18.                     c++;
  19.                     if(c>rang){                       
  20.                         c=0;
  21.                         break;
  22.                     }
  23.                 }
  24.             }
  25.         }       
  26.     }


 
Là ou elle est appelée :  

Code :
  1. private void jSlider1StateChanged(javax.swing.event.ChangeEvent evt) {                                     
  2.         //selectionner la frame par le slider
  3.         i=jSlider1.getValue();       
  4.         jLabel1.setText("Frame : "+i);
  5.         try{
  6.             jLabel2.setIcon(new javax.swing.ImageIcon(listeImageFile.get(i)));           
  7.             showTrajectoire(i);
  8.         }catch(Exception e){       
  9.         }
  10.     }


 
Ca fonctionne, mes trajectoires s'affichent .. pendant le changement d'était de mon slider. Mais après, ça disparait :-/
Qu'est ce que je peux faire pour que ça reste apparant ?
Pour contourner le problème, j'ai fait un bouton qui permet de réafficher les trajectoires, mais c'est pas pratique.


Message édité par c0wb0y le 16-06-2005 à 14:30:16
Reply

Marsh Posté le 14-06-2005 à 15:06:24   

Reply

Marsh Posté le 16-06-2005 à 14:30:31    

:bounce:

Reply

Marsh Posté le 30-06-2005 à 00:55:59    

Slt, je pense que tu devrais essayer de sauvegarder les coordonnées de tes trajectoires dans un Vector(sorte de tableau dont la taille peut varier) et après d'afficher les valeurs contenues dans ce Vector.

Reply

Marsh Posté le 01-07-2005 à 12:02:36    

Hum, j'utilise déjà une ArrayList qui est plus ou moins la même chose que le Vector (les java guru diront que ArrayList caybieng et Vector caymal). Sinon, j'ai bidouiller un peu pour que l'affichage se refait quand on sort de la zone du JSlider, c'set pas le top niveau ergonomie mais c'est utilisable. Le projet est finit de toute façon maintenant ^^
 
Merci quand même :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed