gfive | ben, j'en ai pas vraiment...
Un exemple de code d'un de mes composants :
Code :
- class Comp extends Canvas {
- private Image offScreenImage;
- public void paint(Graphics g) {
- offScreenImage = createImage(getSize().width, getSize().height);
- clear(g);
- update(g);
- }
-
- private void clear(Graphics g) {
- g.setColor(parent.getDocument().DEFAULT_BACKGROUND);
- g.fillRect(0, 0, getSize().width, getSize().height);
- }
- public void update(Graphics g) {
- paintOffScreen();
- getGraphics().drawImage(offScreenImage, 0, 0, this);
- }
- private void paintOffScreen(int index) {
- if (offScreenImage == null) {
- offScreenImage = createImage(getSize().width, getSize().height);
- }
- Graphics g = offScreenImage.getGraphics();
- clear(g);
- //// Dessin sur g ici : on dessine sur l'image OffScreen, pour que ça scintille pas.
- }
- }
|
Ca, c'est pour faire du double-buffering...Et ensuite, je m'arrange pour que paint(Graphics) ne soit pas appellée tant que ma fenêtre n'a pas été affichée...
Sinon, je vois pas.. |