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

Java ME Discussion :

afficher une image


Sujet :

Java ME

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Par défaut afficher une image
    Bonjours,
    ça va faire plusieur jours que j'essayer d'afficher une image je sais qu'il faut utiliser Image.createImage("/mon_image.png"); je l'utimise mais ldans l'emulateur il n'affiche rien (j'utilise netbeans) alors j'aimerai savoir comment on fait pour affiché une image en java me (sachant que j'utilise netbeans)
    je vous remertie d'avance pour votre aide

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2004
    Messages : 187
    Par défaut
    Peux tu nous dire si tu as une exception envoyée par la méthode createImage ?
    A part ça, où as-tu placé ton image ? Apparait-elle dans ton projet netbeans ? Est-elle bien stockée dans le jar de ton application ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Par défaut
    voici un code que j'ai fait:
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    import java.io.IOException;
    import javax.microedition.lcdui.game.TiledLayer;
    import javax.microedition.midlet.*;
    import javax.microedition.lcdui.*;
    import java.lang.Object;
    import javax.microedition.lcdui.game.Layer;
    import javax.microedition.io.*;
    /**
     *
     * @author  Omegasf3
     * @version
     */
    public class Sprite1 extends MIDlet implements CommandListener {
     
        private Command ExitCommand;
        private Display display;
        private Form form;
     
     
        private Form pageDemo() {
            Image myImage1 = null;
           Form mainpage = new Form("Demo Images");
     
           try {
               System.out.println("phase 0");
               Image myImage1Src = Image.createImage("/example/Image/bloc.png");
               TiledLayer tl = new TiledLayer(10, 10, myImage1Src, 16, 16);
               int [] map = {
                   1,1,1,1,1,1,1,1,1,1,
                   1,1,6,0,0,0,0,5,1,1,
                   1,6,0,0,0,0,0,0,5,1,
                   1,0,0,0,0,0,0,0,0,1,
                   1,0,0,0,0,0,0,0,0,1,
                   1,0,0,0,0,0,0,0,0,1,
                   1,0,0,0,0,0,0,0,0,1,
                   1,8,0,0,0,0,0,0,7,1,
                   1,1,8,0,0,0,0,7,1,1,
                   1,1,1,1,1,1,1,1,1,1
               };
               for(int i = 0; i <map.length; i++) {
                   int column = i%10;
                   int line = (i -column) /10;
                   tl.setCell(column, line, map[i]);
               }
               //System.out.println("phase 1");
               //myImage1 = Image.createImage(myImage1Src,0,0,176,155,0);
               //System.out.println("phase 2");
                //System.out.println("phase 3");
               //g.drawImage(myImage1Src, 0, 0, TOP|LEFT);
               //g.drawImage(myImage1Src, 0, 0, TOP|LEFT);
     
           } catch (IOException e) {
                e.printStackTrace();
           }
     
           mainpage.append(myImage1);
           return mainpage;
    }
     
        public Sprite1() throws IOException {
            Command ExitCommmand;
            display = Display.getDisplay(this);
            form = pageDemo();
            ExitCommmand = new Command("EXIT", Command.EXIT, 1);
            form.addCommand(ExitCommand);
            form.setCommandListener(this);
        }
     
    public void startApp() {
    }
     
     
        public void pauseApp() {
        }
     
        public void destroyApp(boolean unconditional) {
        }
     
        public void commandAction(Command command, Displayable displayable) {
            if(command == ExitCommand) {
                destroyApp(false);
                notifyDestroyed();
            }
        }
    }
    et puis pour l'image je l'ai placé a coté du .java dans le dossier src ou sinon j'ai aussi creer un repertoire image j'ai fait un try et un catch et voici le message qu'il renvois

    Unable to create MIDlet example.Sprite1
    java.lang.NullPointerException
    at javax.microedition.lcdui.Form.append(Form.java:687)
    at example.Sprite1.pageDemo(Sprite1.java:64)
    at example.Sprite1.<init>(Sprite1.java:71)
    at java.lang.Class.runCustomCode(+0)
    at com.sun.midp.midlet.MIDletState.createMIDlet(+34)
    at com.sun.midp.midlet.Selector.run(Selector.java:151)

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2004
    Messages : 187
    Par défaut
    Dans le code que tu donnes, tu essaies de faire un
    mainpage.append(myImage1);
    sauf que la création de myImage1 est commentée, donc l'objet est nul, d'où l'exception qui t'est renvoyée.
    Mais tu ne fais pas ce qu'il faut de toutes façons : dans un Form, je ne pense pas que tu puisses ajouter des images directement mais tu dois passer par des ImageItem, qui eux seront ajoutés à ton objet Form.
    Je vois aussi qui tu essaies de passer par des objets Graphics pour afficher les images : c'est possible mais tu ne dois alors pas utiliser un objet Form mais créer une classe fille de Canvas pour afficher tes images.
    Attention : si ce que tu veux faire c'est vraiment jouer avec des sprites, je te conseille fortement de passer par un GameCanvas à la place de ton Form !!!

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Par défaut
    si j'ai bien compris au lieu de crer une form il faut que j'utilise un image item pour y afficher mon image

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Par défaut
    en fait tout ce que je veux vaire c'est afficher une image sur l'ecran de mon portable ou de l'emulateur

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2004
    Messages : 187
    Par défaut
    Alors crée un ImageItem à partir de ton image et ajoute le à ton objet Form !

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Par défaut
    Image myImage1Src = Image.createImage("/bloc.png");
    Im2= new ImageItem("Coucou",myImage1Src,10,"Coucou2");
    comme ça puis apres je l'ajoute a ma form c'est bien ça?
    c'est la premiere fois que j'utilise image item donc je sais pas si je met les bon argument et j'ai compileer et ça me met les meme erreur

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2004
    Messages : 187
    Par défaut
    Je t'ai même trouvé un bon exemple ici :
    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
    public HelloMidp () {
      display = Display.getDisplay (this);
      mainForm = new Form ("HelloMidp");
       try {
        ImageItem logo = new ImageItem 
          ("Copyright: ", Image.createImage ("/mcp.png"), 
           ImageItem.LAYOUT_CENTER | ImageItem.LAYOUT_NEWLINE_BEFORE 
           | ImageItem.LAYOUT_NEWLINE_AFTER, "Macmillian USA");
     
         mainForm.append (logo);
      }
      catch (IOException e) {
        mainForm.append (new StringItem 
          ("Copyright", "Sams Publishing; Image not available:" + e));
      }
    }

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Par défaut
    ça marche toujours pas ça me met que mon image n'est aps valide.....

  11. #11
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2004
    Messages : 187
    Par défaut
    Détaille ton exception...
    C'est à la création de l'objet ImageItem que tu as une erreur ?

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Par défaut
    je pense que oui voici le code
    import java.io.IOException;
    import javax.microedition.midlet.*;
    import javax.microedition.lcdui.*;
    // contient les éléments de base
    import javax.microedition.midlet.*;
    // contient les éléments permettant de gérer l'interface
    import javax.microedition.lcdui.*;

    /**
    *
    * @author Omegasf3
    * @version
    */


    // contient les éléments de base
    import javax.microedition.midlet.*;
    // contient les éléments permettant de gérer l'interface
    import javax.microedition.lcdui.*;

    public class Helloworld extends MIDlet implements CommandListener
    {
    private Display _display;
    private TextField _textField1;
    private Command _commandExit;
    private Form _form1;

    public Helloworld() throws IOException
    {
    // fait un lien avec l'affichage
    _display = Display.getDisplay(this);

    // creation d'un objet formulaire sur lequel on peut placer des composants
    _form1 = new Form("Test de HelloWorld");


    try {
    ImageItem logo = new ImageItem("Copyright: ",Image.createImage("/gif1.png"),ImageItem.LAYOUT_CENTER | ImageItem.LAYOUT_NEWLINE_BEFORE |ImageItem.LAYOUT_NEWLINE_AFTER,"Macmillian USA");

    _form1.append (logo);
    }
    catch (IOException e) {
    _form1.append (new StringItem
    ("Copyright", "Sams Publishing; Image not available:" + e));
    }

    // creation d'un bouton pour sortir du programme
    _commandExit = new Command("Exit", Command.SCREEN,1);

    // creation d'un champ de texte contenant notre Hello World
    _textField1 = new TextField("","Hello World !",15,TextField.ANY);

    // ajout des composants au formulaire
    _form1.addCommand(_commandExit);
    //_form1.append(_textField1);
    _form1.setCommandListener(this);
    }


    // évènement exécuté au démarrage de l'application
    public void startApp()
    {
    // affichage du formulaire
    _display.setCurrent(_form1);
    }

    // évènement exécuté lors de la mise en pause de l'application
    public void pauseApp()
    {
    }

    // évènement exécuté lorsque l'application se termine
    public void destroyApp(boolean unconditional)
    {
    }

    public void commandAction(Command c, Displayable s)
    {
    // lors du clic sur le bouton Exit
    if (c == _commandExit)
    {
    // appel manuel à la fonction de fermeture
    destroyApp(false);
    // on demande au manager de fermer l'application
    notifyDestroyed();
    }
    }
    }




    et voici l'erreur qu'il renvoi


    java.io.IOException
    at javax.microedition.lcdui.ImmutableImage.getImageFromStream(Image.java:968)
    at javax.microedition.lcdui.ImmutableImage.<init>(Image.java:939)
    at javax.microedition.lcdui.Image.createImage(Image.java:313)
    at example.Sprite1.pageDemo(Sprite1.java:33)
    at example.Sprite1.<init>(Sprite1.java:49)
    at java.lang.Class.runCustomCode(+0)
    at com.sun.midp.midlet.MIDletState.createMIDlet(+34)
    at com.sun.midp.midlet.Selector.run(Selector.java:151)
    Unable to create MIDlet example.Sprite1
    java.lang.NullPointerException
    at javax.microedition.lcdui.Displayable.addCommand(Displayable.java:298)
    at example.Sprite1.<init>(Sprite1.java:51)
    at java.lang.Class.runCustomCode(+0)
    at com.sun.midp.midlet.MIDletState.createMIDlet(+34)
    at com.sun.midp.midlet.Selector.run(Selector.java:151)

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Par défaut
    est ce qu'il faut que l'image est un format particulier car moi j'utilise des image png mon image fait 64x48

  14. #14
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2004
    Messages : 187
    Par défaut
    Normalement les images png c'est ce qui est le mieux supporté par le java. Moi je n'ai pas de problème pour les afficher.
    Ton image est-elle bien à la racine de ton dossier /src de ton projet Netbeans ? ou si tu ouvre ton jar comme un fichier zip vois-tu ton image inclue dans le jar directement à la racine de celui-ci ?

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Par défaut
    ça marrrrrrrrrrrrrrrrrrrrrrrrche merci beaucoups en fait l'image n'était pas dans le jar c'est pour ça je l'ai inclu dans un package et la ça marche

  16. #16
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Par défaut J2ME

    j'ai essayé à executer ton code en J2me mais il y'a des erreurs, au niveau de catch..... j'ai enlevé le "+e" ,l'execution se faite sans erreur mais l'image ne se charge pas . quand je clique sur Lunch;il m'affiche un message "Copyright", "Sams Publishing; Image not available:"; stp aide moi.
    Merci d'avance.

  17. #17
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    795
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 795
    Par défaut
    As-tu mis l'image dans ton jar ? (comme fetchy le precise précédemment : Ton image est-elle bien à la racine de ton dossier /src de ton projet Netbeans ? ou si tu ouvre ton jar comme un fichier zip vois-tu ton image inclue dans le jar directement à la racine de celui-ci ?)

  18. #18
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 10
    Par défaut j2me image
    bonjour!

    j'ai arrivé à ouvrir une image à partir de J2me mais je dois précis son chemin ,avec create image; mais j'ai besoin de charger les images selon le choix (sans preciser une seule) , mais je ne sais pas comment faire .si vous avez une idée aide moi SVP.
    Merci d'avance.

  19. #19
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 2
    Par défaut
    Citation Envoyé par fetchy Voir le message
    Normalement les images png c'est ce qui est le mieux supporté par le java. Moi je n'ai pas de problème pour les afficher.
    Ton image est-elle bien à la racine de ton dossier /src de ton projet Netbeans ? ou si tu ouvre ton jar comme un fichier zip vois-tu ton image inclue dans le jar directement à la racine de celui-ci ?
    En ce qui concerne les formats, seul certains le PNG a un support obligatoire dans les implementations, et encore, uniquement certains profils, il me semble. Dans la Javadoc de la classe Image tout est expliqué.

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Par défaut
    sinon y a une taillle maximal pour une image?
    je peut mettre n'importe quelle image de n'importe quelle taille?

Discussions similaires

  1. [VB.NET] afficher une image stockée dans une table
    Par matonfire dans le forum ASP.NET
    Réponses: 4
    Dernier message: 19/03/2004, 11h21
  2. Afficher une image JPG qui se trouve dans une bdd
    Par Harry dans le forum Bases de données
    Réponses: 6
    Dernier message: 27/02/2004, 10h51
  3. Charger et afficher une image jpg avec les mfc
    Par glop - pas glop dans le forum MFC
    Réponses: 3
    Dernier message: 11/02/2004, 18h59
  4. Réponses: 2
    Dernier message: 04/02/2004, 22h32
  5. Afficher une image sans passer par les textures
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/05/2003, 19h13

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