[Applet Java] Inserer une image dans un panel

Bonjour,
Est ce quelqu'un sait comment pour une Applet insérer une image dans un panel en AWT ?

5 réponses

  1. bonjour,

    pour afficher une image dans un Panel, tu peux surcharger la méthode paintComponent de la manière suivante:

    void paintComponent(Graphics g){
    super.paintComponent(g);
    Graphics2D g2 = (Graphics2D) g;
    g2.drawImage(mon_image, 0, 0, this.getWidth(), this.getHeight(), this);
    }

    où mon_image est un object de type Image initialisé dans le constructeur.
    le code est peut-être approximatif, car écrit de mémoire mais la méthode fonctionne.
    1. Bonjour et merci pour votre réponse.

      Je viens d'essayer votre proposition mais l'image ne s'affiche pas.
      J'utilise ici des panel en AWT et non des Jpanel en Swing et je ne crois que pas que la méthode paintComponents soit utilisable dans ce cas.

      Merci de m'éclairer si je me trompe
    2. bonjour,

      autant pour moi, il n'y a pas en effet de méthode paintComponent enAWT. On doit pouvoir utiliser le même principe avec paint(Graphics g).

      public void paint(Graphics g){
      super.paint(g);
      g.drawImage(monImage, 0, 0, this);
      }
  2. Bonjour,

    Merci encore pour votre reponse rapide. Malheureusement, en utilisant cette méthode je parviens à afficher l'image dans le fond de l'applet mais pas dans un panel.

    Si vous avez une autre proposition ...
    1. Est-ce bien la méthode paint du panel qui est surchargée, ou bien celle de l'objet de type Applet.
      Serait-il possible de jeter un coup d'oeil au code en question.
      1. Bonjour,

        Voici mon code:

        //definition de la classe Spanel derivant de panel:

        public class Spanel extends java.awt.Panel {
        private Image picture;

        public Spanel(Image Picture) {
        picture=Picture;
        }

        public void paint(Graphics g) {
        super.paint(g);
        g.drawImage(picture,0,0,this);
        }
        }

        //déclaration d'un Spanel:
        Spanel panel1 = new Spanel(mon_image);

        //Puis appel de la méthode paint surchargé:
        panel1.paint(g);

        J'obtient alors la faute:
        Exception during paint(): java.lang.NullPointerException
        en rapport avec la ligne:
        g.drawImage(picture,0,0,this);

        Voila merci encore pour votre aide !
      2. bonjour,

        ce n'est pas utile d'appeler la méthode paint, elle est appelé automatiquement, de plus, quel objet g est utilisé dans cette méthode?

        L'objet null vient g ou de picture, on doit pouvoir vérifier ça avec un truc du genre System.prinltn("Graphics: " + g + " Image: " + picture); dans paint
    2. Peux tu mettre tout ton code car je n'arrive pas à la faire.

      Merci
      1. ça y est, c'est bon cette fois,

        l'image mon_image n'était pas initialisée avant que je declare le Spanel.

        Merci beaucoup pour votre aide patiente, c'est rare et vraiment sympa !