J'Y ARRIVE PAS ... MAMAN !

Asrull Messages postés 79 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 17 novembre 2004 - 10 juin 2004 à 10:28
Asrull Messages postés 79 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 17 novembre 2004 - 10 juin 2004 à 16:52
J'arrive à réccupérer l'image (nomFichier), vu qu'elle s'affiche à l'exécution (jusque là tout est normal), mais pas moyen de réccuppérer les dimensions de cette image (dimImage me retourne (-1,-1))
SVP, avant que je n'aille pleurer chez ma mère parce que je suis piètre apprentit développeur, quelqu'un peut me dire comment on fait ?

this est un JPanel

image=getToolkit().getImage(nomFichier);
//Jusque là ça marche
Dimension dimImage=new Dimension((int)(image.getWidth(this)),(int)(image.getHeight(this)));
//System.out.println(dimImage) m'affiche "java.awt.Dimension[width=-1,height=-1]"

Je vous en supplie aidez moi !

Oobaï TaPou !

4 réponses

toffe12 Messages postés 53 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 23 septembre 2005 1
10 juin 2004 à 14:44
je pense que cela vient de l'utilisation du Jpanel comme implement de l'interface ImageObserver. Personnelement j'utilise la classe canvas utilise un rectangle vide rectangle qui lui a une dimention ci desous le code :

// on importe les classes dont on a besoin
import java.awt.*;
import java.awt.event.*;
import java.awt.Color;
import java.awt.Image;
import java.awt.Graphics;

/**
 * Definition de la classe ImageCanvas. Cette classe permet l'affichage
 * d'une image dont le contenu se treouve dans un fichier
 */

public class ImageCanvas
extends Canvas
{
  private Image img;

  /**
   * Constructeur vide d'un ImageCanvas
   */

  public ImageCanvas ()
  {
    img = null;
  }

  /**
   * Constructeur d'un ImageCanvas
   *
   * @param fichierImage Nom du fichier définissant l'image à afficher
   */

  public ImageCanvas (
    String fichierImage)
  {
    img = getToolkit().getImage(fichierImage);
  }

  /**
   * Affichage de l'ImageCanvas
   *
   * @param g contexte graphique
   */

  public void paint (
    Graphics g)
  {
    if (img == null)
    {
      super.paint(g);
      g.setColor(Color.black);
    }
    else
    {
      g.drawImage(img, 0, 0, this);
    }
  }

  /**
   * Récupération de la taille minimum de l'ImageCanvas
   */

  public Dimension getMinimumSize()
  {
    return new Dimension(img.getWidth(this), img.getHeight(this));
  }

  /**
   * Récupération de la taille préférencielle de l'ImageCanvas
   */

  public Dimension getPreferredSize()
  {
    return new Dimension(img.getWidth(this), img.getHeight(this));
  }

  /**
   * Récupération de l'image
   */

  public Image getImage()
  {
    return img;
  }

  /**
   * Affectation de l'image
   *
   * @param img Image à afficher
   */

  public void setImage(Image img)
  {
    this.img = img;
    repaint();
  }
}



le canvas s'utilise comme un panel

bon courrage
0
Asrull Messages postés 79 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 17 novembre 2004 1
10 juin 2004 à 15:15
Merci pour le code de ta classe ça me donne une idée des méthodes utiles, mais le problème ne venait pas du JPanel, ça venait de MediaTracker que je connaissais pas que que je n'avait pas utilisé, tout simplement une classe qui s'occupe de surveiller le chargement de l'image et qui crie "c'est bon !" avec son ptit casque de chantier une fois que c'est fini.

par contre je peux te poser une question hors suget ?
T'es pas le premier que je vois à faire ça du coup je me dit que ça doit être utile qqpart : à quoi ça sert un contructeur null ?

Oobaï TaPou !
0
toffe12 Messages postés 53 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 23 septembre 2005 1
10 juin 2004 à 16:18
un constructeur null ,en fait c'est un constructeur vide mais c'est une bonne question.
Je le fais par habitude pour tout mes objets graphiques, mais pour cette classe cela me permet d'instancier un objet sans toute fois avoir une image physique, generalement je reçois l'image ou le fichier image bien apres la creation de mon interface ( visionneuse d'image en client/serveur ).
0
Asrull Messages postés 79 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 17 novembre 2004 1
10 juin 2004 à 16:52
okay merci

Oobaï TaPou !
0
Rejoignez-nous