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 :
- package graphics.rafraichissement;
- import java.awt.*;
- import javax.swing.*;
- public class EssaiRafraichissement extends javax.swing.JPanel {
-
- public EssaiRafraichissement() {
- this.setPreferredSize(new Dimension(400, 400));
- }
-
- public void paint(Graphics g) {
- g.setColor(Color.RED);
- g.drawLine(0, 0, 400, 400);
- }
-
-
- public static void main(String[] args) {
- JFrame frame = new JFrame();
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.setContentPane(new EssaiRafraichissement());
- frame.pack();
- frame.setVisible(true);
-
- JOptionPane.showMessageDialog(frame,"Bouger la fenetre" );
- }
-
- }
|
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.