Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pointeur Null

2 réponses
Avatar
Cdif
Bonjour,

Sous Eclipse j'ai développé une applet qui contient notamment la méthode
init suivante :

/**
* This method initializes this
*
* @return void
*/
public void init() {
this.setLayout(new java.awt.BorderLayout());
this.setSize(450, 400);
this.add(getPanel2(), java.awt.BorderLayout.CENTER);
this.add(getPanel1(), java.awt.BorderLayout.NORTH);
this.add(getPanel(), java.awt.BorderLayout.SOUTH);
g=panel1.getGraphics();

System.out.println("Ici c'est le g de début = " + g);

}

A l'exécution sur l'écran console j'obtiens :
Ici c'est le g de début = null
Ici c'est le g de début =
sun.java2d.SunGraphics2D[font=java.awt.Font[family= ....etc

Une explication ? Est ce lié au temps d'affichage de l'applet car le panel2
contient 24 touches ?.

Si après le g = panel1.getGraphics j'appelle une méthode qui dessine dans
le panel1 j'ai un plantage avec le pointeur g = null (sur l'écran console la
2ème ligne n'apparaît pas), le dessin semble commencé avant que le g soit
renseigné.

Comment faire pour appeler cette méthode en ayant le g renseigné ?.

D'avance merci

2 réponses

Avatar
JScoobyCed
Bonjour,

Aujourd'hui jeudi, vous posez 6 fois le meme message, dans une
intervalle de 45 minutes. Peut-etre avez-vous aussi un probleme de
newsreader... Je ne suis pas moderateur du group, mais je pense que vous
pourriez nous soulager en ne postant qu'une fois.

Pour ce qui est de votre question, je peux vous aiguiller.
Dans la methode init() d'une Applet, je pense qu'il n'est pas conseille
d'appeler la methode getGraphics(), qui ne return un objet Graphic
valide qu'une fois l'affichage du composant termine (API doc:
getGraphics(): This method will return null if this component is
currently not displayable).
Je dirais qu'il faut bouger votre
g=panel1.getGraphics();
de la methode init() a la methode start() (et modifier le code pour
acceder aux objets en l'occurence)

--
JScoobyCed
What about a JScooby snack Shaggy ? ... Shaggy ?!
Avatar
Black Myst
Cdif wrote:
Bonjour,

Sous Eclipse j'ai développé une applet qui contient notamment la méthode
init suivante :

/**
* This method initializes this
*
* @return void
*/
public void init() {
this.setLayout(new java.awt.BorderLayout());
this.setSize(450, 400);
this.add(getPanel2(), java.awt.BorderLayout.CENTER);
this.add(getPanel1(), java.awt.BorderLayout.NORTH);
this.add(getPanel(), java.awt.BorderLayout.SOUTH);
g=panel1.getGraphics();

System.out.println("Ici c'est le g de début = " + g);

}

A l'exécution sur l'écran console j'obtiens :
Ici c'est le g de début = null
Ici c'est le g de début > sun.java2d.SunGraphics2D[font=java.awt.Font[family= ....etc

Une explication ? Est ce lié au temps d'affichage de l'applet car le panel2
contient 24 touches ?.

Si après le g = panel1.getGraphics j'appelle une méthode qui dessine dans
le panel1 j'ai un plantage avec le pointeur g = null (sur l'écran console la
2ème ligne n'apparaît pas), le dessin semble commencé avant que le g soit
renseigné.

Comment faire pour appeler cette méthode en ayant le g renseigné ?.


Initialise g dans la méthode paint(Graphics g) avec le g en parametre...

Si tu veux que ca marche, n'utilise pas la méthode getGraphics, et
utilise le parametre g que dans la méthode paint()...


D'avance merci
de rien