OVH Cloud OVH Cloud

Pointer Null

1 réponse
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

1 réponse

Avatar
Xavier Tarrago
Normalement, on ne dessine pas dans init(). C'est fait pour initialiser,
c'est-a dire pour faire les traitements qui ne doivent être faits qu'une
fois a la creation de l'applet.
Le dessin doit etre fait dans la methode paint qui est appelee chaque fois
que le dessin doit etre rafraichi et qui fournit un argument Graphics
correctement configuré.

"Cdif" a écrit dans le message de
news:ce7rqj$8o4$
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