GNT sans publicité, site mobile, fonctionnalitées exclusives...

A propos de Graphics

Le
trickyfox
Salut a tous!

J'ai un petit souci avec l'objet Graphics. Je dessine dans un Canvas
divers objet tel que des formes et des lignes avec la souris. Donc ma
methode paint(Graphics g) ne fait rien puisque tout est dessiner avec
la souris.

Puis j'ouvre une fenetre de dialogue (JOptionPane) ou une fenetre
classique et je la promene sur mon canvas. Et la je constate que la
fenetre agit comme une gomme et efface une grande partie de ce que
j'ai dessine a la souris.

Alors comment faire pour que le dessin que j'ai dessine a la souris
reste intact? Je ne veux pas a chaque fois redessiner tout le canvas,
il y a possibilite de "verrouiller" un objet Graphics??

Merci d'avance pour votre aide.
Lire les 3 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
arN
Le #707517
wrote:

Salut a tous!

J'ai un petit souci avec l'objet Graphics. Je dessine dans un Canvas
divers objet tel que des formes et des lignes avec la souris. Donc ma
methode paint(Graphics g) ne fait rien puisque tout est dessiner avec
la souris.

Puis j'ouvre une fenetre de dialogue (JOptionPane) ou une fenetre
classique et je la promene sur mon canvas. Et la je constate que la
fenetre agit comme une gomme et efface une grande partie de ce que
j'ai dessine a la souris.

Alors comment faire pour que le dessin que j'ai dessine a la souris
reste intact? Je ne veux pas a chaque fois redessiner tout le canvas,
il y a possibilite de "verrouiller" un objet Graphics??

Merci d'avance pour votre aide.


simple idée, non testée : la fenêtre en se déplaçant sur ton Canvas doit
appeler la méthode repaint() du Canvas, donc si tu redéfinis la méthode
repaint pour ne rien faire ... (à voir ensuite si tu n'as pas d'autres
problèmes d'affichage qui en découlent)

Sinon, tu peux aussi faire une capture de l'écran au niveau de ton canvas et
insérer un "redessinage" de cette capture en fin de méthode repaint.

A essayer

--
Arnaud

Jean-Philippe Martin
Le #707516
news:
Salut a tous!

J'ai un petit souci avec l'objet Graphics. Je dessine dans un Canvas
divers objet tel que des formes et des lignes avec la souris. Donc ma
methode paint(Graphics g) ne fait rien puisque tout est dessiner avec
la souris.

Puis j'ouvre une fenetre de dialogue (JOptionPane) ou une fenetre
classique et je la promene sur mon canvas. Et la je constate que la
fenetre agit comme une gomme et efface une grande partie de ce que
j'ai dessine a la souris.

Alors comment faire pour que le dessin que j'ai dessine a la souris
reste intact? Je ne veux pas a chaque fois redessiner tout le canvas,
il y a possibilite de "verrouiller" un objet Graphics??

Merci d'avance pour votre aide.


Moi je dessinerais sur un Graphics apart et je redirigerai ma méthode
paint() pour qu'elle dessine le contenu de mon Graphic.

A essayer aussi ;o)

Aucun de nous deux ne répond a ta question du "verrouillage" désolé.

Black Myst
Le #707364
wrote:
Salut a tous!

J'ai un petit souci avec l'objet Graphics. Je dessine dans un Canvas
divers objet tel que des formes et des lignes avec la souris. Donc ma
methode paint(Graphics g) ne fait rien puisque tout est dessiner avec
la souris.

Puis j'ouvre une fenetre de dialogue (JOptionPane) ou une fenetre
classique et je la promene sur mon canvas. Et la je constate que la
fenetre agit comme une gomme et efface une grande partie de ce que
j'ai dessine a la souris.

Alors comment faire pour que le dessin que j'ai dessine a la souris
reste intact? Je ne veux pas a chaque fois redessiner tout le canvas,
il y a possibilite de "verrouiller" un objet Graphics??

Merci d'avance pour votre aide.


Non, on peut pas verouiller un object Graphics.

La méthode paint doit IMPERATIVEMENT dessiner l'integralité du
composant, lorsque la fenetre, meme d'une autre application passe
au dessus de ton composant, elle ecrit exactement au même endrois
que toi avec un acces au graphics

La bonne solution c'est de dessiner dans une image, et d'afficer l'image
dans la méthode paint.

paint ( graphics g ) {
if( monImage==null ) {
monImage = createImage(getWidth(),getHeight());
}
g.drawImage(monImage,...);
}

Et tu dessine dans ton image avec un repaint() apres chaque modification
de l'image!

amuse toi bien
Black Myst

Publicité
Suivre les réponses
Poster une réponse
Anonyme