salut,
j'ai deux fenetres qui se superposent.
Quand je passe de l'une à l'autre, les informations qui viennent au fil de l'eau et s'affichent ne sont plus disponibles et sont effacées.
Comment faire pour éviter ce problème.
salut,
j'ai deux fenetres qui se superposent.
Quand je passe de l'une à l'autre, les informations qui viennent au fil de l'eau et s'affichent ne sont plus disponibles et sont effacées.
Comment faire pour éviter ce problème.
j'ai pas bien compris, reexplique stp (pour non Francais!).
mais d'apres le titre(et du titre seulement), tu peux faire ca:
Code : Sélectionner tout - Visualiser dans une fenêtre à part tonPanel.paintAll(tonPanel.getGraphics());
Merci pour la réponse,
Je vais essyé d'être plus clair.
J'ai deux fenêtre de type JFrame qui s'ouvrent, l'une étant derrière l'autre.
Quand je déplace celle qui est situé devant de manière à pouvoir visualiser celle de derrière, les informations situé sur celle-ci s'éffacent partielement.
Ce que je voulais c'est savoir comment réafficher les informations qui ont été perdu.
On m'a parlé de double buffer présent dans la classe Swing mais je vais essayé ta méthode avec :
tonPanel.paintAll(tonPanel.getGraphics());
Merci
Bonjour,
J'ai essayé la commande précedente de différente manière mais sans succès.
En effet, je ne redessine
On m'a parlé d'une copie du buffer disponible sur la classe swing.
Peut-être que je pourrait récupérer les informations afficher précédemment et rafraichir mon JPanel.
Je voudrais savoir svp si cela existe réellement?
Et si cela existe comment récupérer mes informations?
Essaie (pas testé) de mettre en effet le double buffering, j'avais aussi vu quelque chose là-dessus et c'est bien pour le cas dans lequel tu es. Seulement pour l'implémentation je ne suis pas sûr.
A la création de ta frame crée d'abord une Window et ensuite mets-lui 2 buffer
En espérant que ca peut t'aider...
j'ai vu le lien que tu ma transmit mais je voi pa du tout comment l'implementer dans mon code
si je compren bien je dois créer une copie de mon buffer à l'aide de la methode createbufferstrategy puis l'appeler dans le paintComponent et recrée un buffer et ceci devrai réafficher tout ce qui aurai du etre visible?
Non ca je suis sur que non..
Moi j'aurais fait comme ca:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 JFrame jf = new JFrame(); JWindow win = new JWindow(jf); win.createBufferStrategy(2); //ajout de tes composants dans jf jf.setVisible(true); jf.validate();
merci,
la d'après tes explications, je dispose d'une copie du buffer ( win )mais qu'est ce que je peut en faire pour régler le probléme de réafichage.
Rappel : j'ai trois mois de JAVA dans les jambes et elles sont pas très musclées.
A quoi sert validate
Non la méthode ne te retourne pas une copie du Buffer mais "configure" ta fenêtre. Cela veut dire que 2 Buffers lui sont associés... Mais je ne suis pas sûr que cela fonctionne réellement! (t'as pu tester?). Une fois que le double buffering est activé tu n'as besoin de réactualiser l'affichage à mon avis ca devrait se faire tout seul... Au cas où tu peux utiliser la méthode isDoubleBuffered() pour savoir si la fenêtre a bien 2 buffer.Envoyé par sam.fet
Sinon pour le validate tu peux voir la doc Java
En passant tu pourrais aussi aller voir les tutoriaux de Sun comme How to Make Frame
j'ai ete lire la faq et j'ai vu l'histoire du double buffer et j'ai quelque question pour l'implementer
je cree un Graphics buffer
puis la fonction paint et une redéfinission de methode ou une methode qu'on crée comme dessineVoiture par exemple
puis on fait appel a repaint() mais on a pas le code du paintComponent qu'est qui est censé y avoire dedans rien ou l'affichage du buffer et dans ce cas comment faire ?
mais sinon si j'ai bien compris je doi tout dessiner dans le buffer et dans le g que j'obtien avec getGraphics? oui / non
merci vraiment pour l'aide car c'est vraiment pas evident a faire fonctionner et j'espere y arriver
Tu peux aller voir ce topic...
Le 2ème post est sûrement très instructif pour toi
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager