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

Composants Java Discussion :

chargement d'une image


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2010
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 111
    Par défaut chargement d'une image
    bonsoir
    je suis débutant en java et j'essaye de me "former" un peu ,
    après la consultation de quelques tutoriaux , j'arrive a taper le code suivant
    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
    package monimage;
    import javax.swing.*;
    import java.awt.*;
     
    class affiche extends JPanel
    {
      Image fond, monde;
     
      affiche(String s)
        {
          fond = getToolkit().getImage(s);
          monde = getToolkit().getImage("world.jpeg");
          setPreferredSize(new Dimension(300, 200));
        }
     
        @Override
      public void paintComponent(Graphics g)
      {
        super.paintComponent(g);
        g.drawImage(fond, 0, 0, getWidth(), getHeight(), this);
        g.drawImage(monde, 30, 30, this);
      }
    }
     
    class monimage extends JFrame
    {
      monimage(String s)
      {
        setContentPane(new affiche(s));
      }
     
      public static void main(String[] args)
      {
        monimage monCadre = new monimage(args [0] );
        monCadre.pack();
        monCadre.setVisible(true);
      }
    }
    ca me génère
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
    at monimage.monimage.main(monimage.java:34)
    Java Result: 1
    BUILD SUCCESSFUL (total time: 0 seconds)

    et je ne comprend pas comment remédier a mon petit problème ,

    un petit help SVP

  2. #2
    Membre expérimenté Avatar de akrom
    Homme Profil pro
    Automaticien
    Inscrit en
    Mai 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2003
    Messages : 115
    Par défaut
    Comment lance tu ton appli car il lui faut au lancement un argument qui est le nom du fichier image.Vu l'erreur, l'Argument[0] que demande l'appli pour fonctionner n'existe pas.

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2010
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 111
    Par défaut
    bonjour akrom
    merci tout d'abord pour avoir répondu

    j'ai crée un dossier monimage , et le fichier source est appelé ainsi aussi , je travaille sous netbeans ,

    je ne sais pas si j'ai bien compris la remarque ou je passe a coté, je croyais que c'était une question de tableau .....

  4. #4
    Membre expérimenté Avatar de akrom
    Homme Profil pro
    Automaticien
    Inscrit en
    Mai 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Automaticien
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2003
    Messages : 115
    Par défaut
    Lorsque tu lance une appli java tu peut lui donner en parametre un tableau d'arguments qui se récupere ansi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static void main(String[] args)
    donc quand tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monimage monCadre = new monimage(args [0] );
    Tu récupère la String args[0] que tu passe en parametre à monimage(String s).
    Hors si tu ne passe pas de parametre au lancement de l'appli args[0] n'existe pas d'ou java.lang.ArrayIndexOutOfBoundsException: 0
    Netbeans par defaut ne donne pas de parametre a l'appli il te faut lui indiquer dans les proprietées du projet.
    Sinon tu peut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monimage monCadre = new monimage("/chemin/nom_de_l'image.jpg" );

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2010
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 111
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Tu récupère la String args[0] que tu passe en parametre à monimage(String s).
    Hors si tu ne passe pas de parametre au lancement de l'appli args[0] n'existe pas d'ou java.lang.ArrayIndexOutOfBoundsException: 0
    Netbeans par defaut ne donne pas de parametre a l'appli il te faut lui indiquer dans les proprietées du projet.
    ce que vous dites est tout a fait logique , mais je croyais que le chemin de l'image sera apporté par le constructeur de la classe Affiche......

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monimage monCadre = new monimage("/chemin/nom_de_l'image.jpg" );
    j'ai suivi votre code et il y a une legere amelioration : l'application tourne et le conteneur s'affiche , mais pas l'image , savez vous pourquoi ? merci

  6. #6
    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
    Pour charger une image il est recommandé de passer par ImageIO.read qui s'assure que l'image est bien chargée à la fin de l'appel et jette une exception si l'image n'est pas trouvée et non par Toolkit.getToolkit.getImage qui lance un chargement asynchrone et ne permet pas de s'assurer du bon chargement de l'image.

Discussions similaires

  1. Chargement d'une image avec evc4.0
    Par gids01 dans le forum MFC
    Réponses: 1
    Dernier message: 14/11/2005, 20h39
  2. Chargement d'une image
    Par gids01 dans le forum MFC
    Réponses: 1
    Dernier message: 31/10/2005, 14h27
  3. Réponses: 2
    Dernier message: 02/09/2005, 20h47
  4. Vitesse de chargement d'une image jpg ?
    Par ybruant dans le forum Langage
    Réponses: 6
    Dernier message: 16/11/2004, 20h42
  5. [debutant]Chargement d'une image de mes documents
    Par reineville dans le forum C++Builder
    Réponses: 5
    Dernier message: 23/03/2004, 09h52

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