pb avec getGraphics en java

pb avec getGraphics en java - Java - Programmation

Marsh Posté le 26-03-2003 à 14:37:21    


Salut tout le monde !
 
 
voila ca fait un ti moment que je programme en java et j'ai tjs le meme probleme quand j'utilise la méthode getGraphics:
 
Qaund j'appelle cette méthode trop tot dans le programme elle me retourne null et donc mon prog plante.
ALors depuis le tps j'utilise tjs des vieilles methode, le system D ( test si c null, rappelle la méthode plus tard , etc..... )
 
J'aimerai savoir comment ki faut faire ?? Quelle est la méthode miracle  ??
 
 
merci !
 
PS: je travail actuellement avec jsdk 1.3.1

Reply

Marsh Posté le 26-03-2003 à 14:37:21   

Reply

Marsh Posté le 26-03-2003 à 14:54:22    

xtoune a écrit :


Salut tout le monde !
 
 
voila ca fait un ti moment que je programme en java et j'ai tjs le meme probleme quand j'utilise la méthode getGraphics:
 
Qaund j'appelle cette méthode trop tot dans le programme elle me retourne null et donc mon prog plante.
ALors depuis le tps j'utilise tjs des vieilles methode, le system D ( test si c null, rappelle la méthode plus tard , etc..... )
 
J'aimerai savoir comment ki faut faire ?? Quelle est la méthode miracle  ??
 
 
merci !
 
PS: je travail actuellement avec jsdk 1.3.1


ben disons que si tu l'apelle dans le constructeur, c'est trop tot [:spamafote]


---------------
get amaroK plugin
Reply

Marsh Posté le 26-03-2003 à 15:21:40    

En fait, c'est pas ça : le contexte graphique (l'object Graphics, donc) n'est instancié qu'au moment de l'affichage de ton composant à l'écran ou dans un autre device...Et ça se comprend : la façon dont marche le Graphics dépend du device, justement!
Enfin, j'ai eu des tas de problèmes avec cette limitation, moi aussi, et y'a pas 36 solutions, en fait!!

Reply

Marsh Posté le 26-03-2003 à 15:24:14    

tout  à fait, en fait ca ne marche que qd l'objet apparait a l'ecran !
 
 
et c koi alors cette solution ? suspence...........

Reply

Marsh Posté le 26-03-2003 à 15:59:01    

voila une bidouille que j'utilise parfois :
 

Code :
  1. while(g==null){
  2.      try{ Thread.sleep(10);}catch(InterruptedException e){}
  3.       g=d.getGraphics();
  4.     }
  5.     dessin(g);

Reply

Marsh Posté le 26-03-2003 à 16:07:51    

xtoune a écrit :

voila une bidouille que j'utilise parfois :
 

Code :
  1. while(g==null){
  2.      try{ Thread.sleep(10);}catch(InterruptedException e){}
  3.       g=d.getGraphics();
  4.     }
  5.     dessin(g);




Ha ouais c clair que c'est crade  :sarcastic:  
 
Et la sol.  de gfive ... ?


---------------
get amaroK plugin
Reply

Marsh Posté le 26-03-2003 à 17:11:33    

ben, j'en ai pas vraiment...
 
Un exemple de code d'un de mes composants :  
 
 

Code :
  1. class Comp extends Canvas {
  2.     private Image offScreenImage;
  3.     public void paint(Graphics g) {
  4.       offScreenImage = createImage(getSize().width, getSize().height);
  5.       clear(g);
  6.       update(g);
  7.     }
  8.    
  9.     private void clear(Graphics g) {
  10.       g.setColor(parent.getDocument().DEFAULT_BACKGROUND);
  11.       g.fillRect(0, 0, getSize().width, getSize().height);
  12.     }
  13.     public void update(Graphics g) {
  14.       paintOffScreen();
  15.       getGraphics().drawImage(offScreenImage, 0, 0, this);
  16.     }
  17.     private void paintOffScreen(int index) {
  18.       if (offScreenImage == null) {
  19. offScreenImage = createImage(getSize().width, getSize().height);
  20.       }
  21.       Graphics g = offScreenImage.getGraphics();
  22.       clear(g);
  23.       //// Dessin sur g ici : on dessine sur l'image OffScreen, pour que ça scintille pas.
  24.     }
  25. }

 
 
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... :D
 
Sinon, je vois pas..

Reply

Sujets relatifs:

Leave a Replay

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