J'ai une classe X extends JApplet et deux classes Y, Z extends JPanel. J'ai déclaré une instance de Y et une de Z dans X, et ces deux JPanel sont chacun leur tour montré/caché avec show()/hide().
J'ai plusieurs souci avec les Graphics, dont celui ci : dans Z, un getGraphics() semble ne pas toujours désigner le même "plan de travail". Ca semble en effet dépendre de la méthode qui appelle et du moment ou cela est fait (par rapport à l'éxécution du programme).
Mais bon, je me dis que c'est comme ça... je bidouille jusqu'à ce que ça marche. Par contre là y'a vraiment un truc qui m'étonne :
getGraphics().setColor(Color.red);
getGraphics().drawString("PAUSE",50,50);
Ces deux instructions sont sur deux lignes consécutives, dans le même bloc d'instruction de la même méthode, et pourtant le résultat est le suivant : le texte s'affiche mais pas en rouge !
Par contre dans la méthode paint(Graphics g) :
g.setColor(Color.red);
g.drawString("PAUSE",50,50);
aura bien l'effet souhaité.
Pourquoi ça ne marche pas dans le premier exemple ?! Dois je lire 50 pages de doc en anglais pour saisir toute la nuance de ce fonctionnement qui parait si étrange ??