IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

propriété image PNG


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 28
    Par défaut propriété image PNG
    Salut,

    je veux afficher les propriétés de l'image " monImage",
    mais l'instruction colorée en rouge m'affiche -1 lors de l'éxécution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    import javax.swing.*;
    import java.awt.*;
    class TigerContents extends JPanel
    {
    public Image monImage;
    public TigerContents(String url)
    {
    super();
    this.monImage = getToolkit().getImage(url);
    System.out.println(monImage.getHeight(this));
    this.setPreferredSize(new Dimension(434,320)); // Dimension que tu veux
    }
    public void paintComponent(Graphics g)
    {
    super.paintComponent(g); // repeint le fond du JPanel
    g.drawImage(monImage,0,0,getWidth(),getHeight(),this);
    }
    }
    class Menu_General extends JFrame
    {
      public Menu_General(String url)
      {
        super();
        setTitle("Menu General");
        TigerContents panel;
      // url = chemin de l'image que tu veux afficher. Lors de l'appel de TigerFrame ne pas oublier de préciser le chemin de l'image
    panel = new TigerContents(url);
    this.setContentPane(panel);
    pack(); // ajuster la taille de la fenètre
    show(); // affiche la fenetre
    this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
      }
    public static void main(String[] args)
      {
    
       Menu_General m= new Menu_General("C:\\4.PNG");
       m.setBounds(240,120,420,470);
      }
    }

  2. #2
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 55
    Par défaut
    Ne faudrait il pas que TigerContents implemente l'interface imageObserver pour pouvoir utiliser getHeight() ?

    doc

  3. #3
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    L'image n'a probablement pas fini de se charger. Pour t'en assurer, tu peux utiliser java.awt.MediaTracker.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  4. #4
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    Ton image n'est pas encore chargée, elle le sera lors du premier affichage.
    Dans ce cas, une méthode simple est d'utiliser ImageIO qui retourne un image déjà chargée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.monImage = ImageIO.read(new File(file))

  5. #5
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 28
    Par défaut proprété image PNG
    Salut,

    L'image se charge mais la problèmme est le suivant:
    1- je ne peux pas hériter de Jpanel et imageObserver en même temps au niveau de la classe TigerContents.
    2- lorsque j'ecrit l'nstuction System.out.println(monImage.getHeight(this));
    le message suivant est affiché lors de l'éxécution :
    -1
    501
    501
    501
    501
    ...
    tel que 501 représente la hauteur de l'image.
    mais je une seule 501(sans avoir -1 qui l'a précède).

  6. #6
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    1- je ne peux pas hériter de Jpanel et imageObserver en même temps au niveau de la classe TigerContents.
    JPanel implémente déjà imageObserver.

    Concernant le -1, essaye avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    this.monImage = ImageIO.read(new File(file));
    System.out.println( ((BufferedImage)monImage).getHeight() );

  7. #7
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    En chargeant ton image de la façon suivante:

    Citation Envoyé par ngpub Voir le message
    Ton image n'est pas encore chargée, elle le sera lors du premier affichage.
    Dans ce cas, une méthode simple est d'utiliser ImageIO qui retourne un image déjà chargée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.monImage = ImageIO.read(new File(file))


    Et en utilisant pas Image mais BufferedImage (une classe qui hérite d'Image, mais propose plus de possibilités). Cette classe dispose de deux méthodes getHeight() et getWidth() ne prenant pas de paramètres.

  8. #8
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 913
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 913
    Billets dans le blog
    54
    Par défaut
    Citation Envoyé par ngpub Voir le message
    Ton image n'est pas encore chargée, elle le sera lors du premier affichage.
    Rien n'est moins sur bien au contraire, si l'image est distante ou tres grosse elle peut ne pas etre complemente chargee meme au premier affichage...

    Donc pour un truc du genre => eviter les chargements asynchrones (Toolkit, MediaTracker) et se contenter des chargement synchrones (ImageIO, ImageIcon) OU alors se preparer a utiliser ImageObserver comme il se doit... c-a-d deferer le traitement jusqu'a ce que l'information requise soit transmises...
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  9. #9
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    Citation Envoyé par bouye Voir le message
    eviter les chargements asynchrones (Toolkit, MediaTracker) et se contenter des chargement synchrones (ImageIO, ImageIcon)
    Pour info un ImageIcon ne fait que cacher l'utilisation du Toolkit et d'un MediaTracker.

Discussions similaires

  1. [Image]Composition d'images PNG-24
    Par NikoGJ dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 22/11/2006, 22h05
  2. [D5] Zoom d'image PNG avec transparence
    Par Thierry Laborde dans le forum Delphi
    Réponses: 9
    Dernier message: 12/06/2006, 16h41
  3. [Image] Décomposer une image png.
    Par Quintoff dans le forum 2D
    Réponses: 3
    Dernier message: 06/01/2006, 21h22
  4. [Cross-Browser] Couleur d'une image PNG
    Par [BkM-) dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 17/11/2005, 22h00
  5. [Image]setCursor() et les images *.png
    Par feed_our_vision dans le forum Graphisme
    Réponses: 4
    Dernier message: 13/09/2004, 02h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo