Swing et le refraichissement.

Swing et le refraichissement. - Java - Programmation

Marsh Posté le 13-05-2004 à 18:23:36    

Bonjour a tous. J'essaie de faire un petit jeu en java et je suis conduit a m'interroger sur comment marche le refraichissement chez Swing .
 
J'ai beau chercher, je ne comprends pas le role de la methode paint, ce qu'est le double-buffering et ce genre de chose.
 
Je vous donne un exemple tres simple:
 

Code :
  1. package graphics.rafraichissement;
  2. import java.awt.*;
  3. import javax.swing.*;
  4. public class EssaiRafraichissement extends javax.swing.JPanel {
  5.    
  6.     public EssaiRafraichissement() {
  7.         this.setPreferredSize(new Dimension(400, 400));
  8.     }
  9.    
  10.     public void paint(Graphics g) {
  11.         g.setColor(Color.RED);
  12.         g.drawLine(0, 0,  400, 400);
  13.     }
  14.    
  15.    
  16.     public static void main(String[] args) {
  17.         JFrame frame = new JFrame();
  18.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  19.         frame.setContentPane(new EssaiRafraichissement());
  20.         frame.pack();
  21.         frame.setVisible(true);
  22.        
  23.         JOptionPane.showMessageDialog(frame,"Bouger la fenetre" );
  24.     }
  25.    
  26. }


 
Ce programme trace une ligne diagonale dans une fentre et lance une boite de dialogue par dessus. Et bien vous constaterez qu'en bougeant ou fermant la boite de dialogue, la fentre mere n'est pas bien rafraichie. Comment on doit s'y prendre dans cet exemple ? Quelles methodes interviennent dans le rafraichissement d'un composant Swing ?
 
Merci d'avance a ceux qui sauront.

Reply

Marsh Posté le 13-05-2004 à 18:23:36   

Reply

Marsh Posté le 13-05-2004 à 18:38:06    

ratai, c'est pas paint() qu'il fallait réécrire.
C'est paintComponent().
http://java.sun.com/docs/books/tut [...] index.html
 
edit : en oubliant pas l'appel de super() dans paintComponent(), pour qu'il se démerde tout seul avec la transparence.


Message édité par nraynaud le 13-05-2004 à 18:40:12

---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 13-05-2004 à 18:40:07    

nraynaud a écrit :

ratai, c'est pas paint() qu'il fallait réécrire.
C'est paintComponent().
http://java.sun.com/docs/books/tut [...] index.html


 
Ben le probleme c'est que ca change strictement rien. Le resultat est le meme ........

Reply

Marsh Posté le 13-05-2004 à 18:44:17    

pourquoi y'a un "setPreferedSize()" ?
 
Ton JPanel il doit être opaque si tu veux l'utiliser en contentPane, c'est marqué dans le section "rootpanes" du tutoriel.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 13-05-2004 à 18:46:26    

nraynaud a écrit :

pourquoi y'a un "setPreferedSize()" ?
 
Ton JPanel il doit être opaque si tu veux l'utiliser en contentPane, c'est marqué dans le section "rootpanes" du tutoriel.


 
Bon ben ca y est, je l'ai mis opaque. Mais ca change rien ....!

Reply

Marsh Posté le 13-05-2004 à 18:47:19    

amauryxiv a écrit :

Bon ben ca y est, je l'ai mis opaque. Mais ca change rien ....!

on peut avoir une copie d'écran des défauts ?


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 13-05-2004 à 19:01:15    

nraynaud a écrit :

on peut avoir une copie d'écran des défauts ?


 
Ben compilez le code et lancez le. Y en a pour trente secondes .

Reply

Marsh Posté le 13-05-2004 à 19:11:21    

chez moi ça marche parfaitement.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 13-05-2004 à 19:44:34    

nraynaud a écrit :

chez moi ça marche parfaitement.


 
Comment ca ca marche ????????? Quand tu bouges ou que tu ferme la fenetre, t'as pas de salopperies a la place de la diagonale ?????

Reply

Marsh Posté le 13-05-2004 à 19:49:09    

amauryxiv a écrit :

Comment ca ca marche ????????? Quand tu bouges ou que tu ferme la fenetre, t'as pas de salopperies a la place de la diagonale ?????

non, c'est bien pour ça que je te demande des copies d'écran.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 13-05-2004 à 19:49:09   

Reply

Marsh Posté le 13-05-2004 à 20:14:38    

nraynaud a écrit :

non, c'est bien pour ça que je te demande des copies d'écran.


 
Ben je sais pas comment inserer une image ........

Reply

Marsh Posté le 13-05-2004 à 20:22:37    

tag [img]
par contre, il faut que tu la mettes quelquepart sur le net.
on a tous des répertoires à bordel sur nos sites persos.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 13-05-2004 à 20:38:13    

nraynaud a écrit :

tag [img]
par contre, il faut que tu la mettes quelquepart sur le net.
on a tous des répertoires à bordel sur nos sites persos.


 
Bon ben ca va pas etre possible.
 
En tout cas chez moi ce petit programme merde. Quand je bouge la boite de dialogue, ca laisse des traces rouges partout et quand je la ferme, elle ne disparait pas completement.....

Reply

Marsh Posté le 13-05-2004 à 20:46:22    

bah mets un bout de code pour effacer ton ancienne ligne avant de tracer la nouvelle.


---------------
trainoo.com, c'est fini
Reply

Sujets relatifs:

Leave a Replay

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