Disparition de dessin dans un JPanel

Résolu
koalish Messages postés 4 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 4 mai 2006 - 7 mars 2006 à 23:54
koalish Messages postés 4 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 4 mai 2006 - 10 mars 2006 à 19:57
bien le Bonjour à tous !!!

J'ai créé un JPanel avec comme arrière plan une carte de la Belgique et j'ai une méthode qui me permet de cliquer sur cette carte et d'afficher un point à l'endroit du clik.

Le problème c'est que lorsque j'agrandi ma fenêtre (ou la réduis) mes points disparaissent !!! Comment faire pour qu'ils restent affiché

merci de vos futures réponses

6 réponses

bloofi Messages postés 388 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 3 mai 2006 2
8 mars 2006 à 12:33
"comment savoir quand il y a un rafraichissement???"

il y a besoin d'un rafraichissement quand y'a un click non ? a la fin de mouseClicked (par exemple) tu fait tonPanel.repaint()

class Pouet extends JPanel implement MouseListener {

ArrayList points = new ArrayList() ;

public void paint(Graphics g){
g.drawImage(carteBelgique , etc...) ;
for(int i = 0 ; i < points.size() ; i++)
//par exemple :
g.fillOval( (int) points.get(i).getX() , (int) points.get(i).getY() , 5 , 5);
}

public void mouseClicked(MouseEvent e){
points.add( new Point(e.getX() , e.getY() ) );
this.repaint() ;
}

}

j'espere que ca pourra t'aider :)
++
3
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
8 mars 2006 à 00:17
Salut,



tu peux stoker te points dans un vecteur de point et les redessiner lors d'un rafraichissement.

WORA
0
koalish Messages postés 4 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 4 mai 2006
8 mars 2006 à 08:42
Mes points sont stockés dans un tableau mais comment savoir quand il y a un rafraichissement???



Il n'y aurait pas une autre manière de faire pcq ça risque d'être lourd
à traiter si à chaque rafraichissement je dois tout retracer .



Merci en tt cas pour ta réponse !!
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
8 mars 2006 à 10:27
Salut,



les methodes qui sucite un repaint sont nombreuses (j'ai jamais fais gaffe si il y avait une notification sur les repaint....)



sinon tu veux une autre manière bah du peux dessinner dans un buffer
d'image et en faire une copie pour l'affichage et la mettre à jour le
buffer à chaque modification comme ca dans ton paint ou paintComponent
tu ne dessine que l'image en memoire sans te prendre la tete à tout
redessiner



je suis assez clair?


WORA
0

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

Posez votre question
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
8 mars 2006 à 12:54
Arrrrrrrrrrrrg c'est vilain un paint en swing :)



Tu as plusieur choses qui notifie le repaint comme les 3/4 des evenements d'une frenetre :

activation de la fenetre, iconification, redimensionnement, ..............



perso je suis daccord avec [auteurdetail.aspx?ID=713764 koalish] c'est
assez lourd de redessiner les point a chaque repaint() le mieux serai
de rajouter les new coord dans un buffer d'image et ensuite updater le
graphique en ne dessinant que l'image


WORA
0
koalish Messages postés 4 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 4 mai 2006
10 mars 2006 à 19:57
Vu le manque de temps pour résoudre ce problème, j'ai privilégié la lourdeur des repaint()

Mais l'autre méthode me semble meilleure !!!

merci en tt cas
0
Rejoignez-nous