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

  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
    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?

  17. #17
    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
    Pour la taille maximale des images là ça dépendra des téléphones. Je ne sais pas t'en dire plus.
    En tous cas c'est cool qui tu ais réussi à faire fonctionner ton code !

  18. #18
    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
    et moi je te remertie grace a toi je vais pouvoir avancé merci beaucoups

  19. #19
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 13
    Par défaut
    quelqu'un sais comment connaitre cette taille maxi? pour les images??

  20. #20
    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
    En théorie selon la javadoc MIDP 2, la taille maxi théorique des images dépends de la mémoire disponible.

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