getGraphics() renvoi null :(

getGraphics() renvoi null :( - Java - Programmation

Marsh Posté le 07-03-2005 à 22:08:16    

Bonjour,
 
Voici mon problème :
 
class Test extends JPanel{
 
  Test(){
    super();
    JPanel p=new JPanel();
    Graphics g=p.getGraphics();
    this.add(p);
    System.out.println(g);
  }
  public static void main(String []args){
   
 new Test();
  }
}  
 
Le problème se situe au niveau de la méthode getGraphics(). En effet, celle-ci renvoie null et je ne sais pas pourquoi :(
 
Merci de votre aide :)

Reply

Marsh Posté le 07-03-2005 à 22:08:16   

Reply

Marsh Posté le 07-03-2005 à 22:09:22    

Serait-ce parce que ton JPanel n'est mis dans aucun conteneur genre JFrame ?

Reply

Marsh Posté le 07-03-2005 à 22:12:32    

merci de ta réponse rapide !
Mais non...la c'est un résumé de mon erreur...Dans mon programme je met bien l'objet Test dans une JFrame...
Si tu fé un copié collé de cette classe Test tu verras que null s'affiche à l'exécution du programme...:(

Reply

Marsh Posté le 07-03-2005 à 22:13:07    

http://java.sun.com/j2se/1.5.0/doc [...] Graphics()


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 07-03-2005 à 22:13:35    

Ouais, mais le JPanel p est mis nulle part avant l'appel de getGraphics... Tu fais un this.add(p) après avoir tenté de récupérer l'objet Graphics associé...

Reply

Marsh Posté le 07-03-2005 à 22:15:32    


 
merci de ta réponse mais je comprends pas pourquoi il ne peut me retourner un objet Graphics et surtout qu'est ce que je dois faire pour qu'il en retourne un...

Reply

Marsh Posté le 07-03-2005 à 22:17:59    

FlorentG a écrit :

Ouais, mais le JPanel p est mis nulle part avant l'appel de getGraphics... Tu fais un this.add(p) après avoir tenté de récupérer l'objet Graphics associé...


 
La solution serait donc de placer this.add(p) avant ?
Si c'est le cas ça ne marche pas non plus :(

Reply

Marsh Posté le 07-03-2005 à 22:20:17    

Est-ce que la JFrame est déjà affichée ?

Reply

Marsh Posté le 07-03-2005 à 22:24:57    

euh non...
En fait je fais un Test t=new Test(); dans le programme principale puis maFrame.getContentPane().add(t);

Reply

Marsh Posté le 07-03-2005 à 22:33:37    

Ah ben voilà ;)

Reply

Marsh Posté le 07-03-2005 à 22:33:37   

Reply

Marsh Posté le 07-03-2005 à 23:10:37    

merci ;)

Reply

Sujets relatifs:

Leave a Replay

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