Le chargement de l'image en Java J2ME
J'ai un problème avec le chargement de l'image avec java 2ME. J'ai un fichier image "une image.png" emplacement dans le disque "C:". Après que j'ai écrit comme ça pour afficher une image à partir de cet emplacement.
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.io.*;
public class ImageMidlet extends MIDlet implements CommandListener{
private Display display;
private Command exitCommand;
private Command backCommand;
private Command okCommand;
private Form form;
private ImageItem imageItem;
private Image image;
public ImageMidlet(){
display = Display.getDisplay(this);
form=new Form("");
exitCommand = new Command("Exit", Command.EXIT, 1);
backCommand = new Command("Back", Command.BACK, 2);
okCommand = new Command("OK", Command.OK, 3);
try {
image=Image.createImage("/picture.png");
imageItem=new ImageItem(null,image,ImageItem.LAYOUT_NEWLINE_BEFORE,"");
}
catch(IOException ex){
}
form.append(imageItem);
form.addCommand(okCommand);
form.addCommand(exitCommand);
form.addCommand(backCommand);
form.setCommandListener(this);
display.setCurrent(form);
}
public void commandAction(Command c,Displayable d){
}
public void startApp() {
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
Il m'indique cette erreur:
Unable to create MIDlet Test.ImageMidlet
java.lang.NullPointerException
at javax.microedition.lcdui.Form.append(Form.java:638)
at Test.ImageMidlet.<init>(ImageMidlet.java:39)
at java.lang.Class.runCustomCode(+0)
at com.sun.midp.midlet.MIDletState.createMIDlet(+34)
at com.sun.midp.midlet.Selector.run(Selector.java:151)
Je commence à apprendre à développer, de sorte s'il vous plaît guide pour ce faire.
vérifiez le nom de fichier est correct. Chargeur d'Image est sensible à la casse et même le nom de fichier "image.Png", vous obtiendrez l'exception...
OriginalL'auteur Sopolin | 2009-08-26
Vous devez vous connecter pour publier un commentaire.
Comme msell dit - Vous ne pouvez pas accéder à des images à partir de Votre ordinateur. Assurez-vous que Vous avez inclus l'image donnée dans midlet fichier jar. Si Vous essayez d'accéder à l'aide de '/image.png', alors il devrait être situé à la racine du répertoire dans le bocal.
Quel outil utilisez-Vous pour créer le jar? Peut-être l'image qui est déjà là (certains outils mettre en images, 'res' dossier et Vous devez utiliser '/res/image.png'). Peut-être Vous avez juste besoin de corriger le chemin d'accès. Et le répertoire racine est dans aucun sous-dossier 🙂
Salut, je suis à l'aide de NetBeans v6.7.1. Me répondre rapidement Merci,Sopolin
Avec la plate-forme Java_ME_platform_SDK_3.0
Merci beaucoup JaanusSiim, je le comprends.
OriginalL'auteur JaanusSiim
Image.createImage(String nom) charges de l'image donnée comme une ressource. Les ressources qui sont chargés avec Classe.getResourceAsStream(nom), qui recherche les ressources de chemin de classe, et non pas à partir de votre système de fichiers racine.
Vous devez mettre le fichier image dans votre classpath, qui est généralement de l'application finale .fichier jar. Généralement un dossier appelé ressources ou res est créé dans le cadre du projet, où les images sont placées. Le contenu de ce dossier sont alors copiés dans le .fichier jar. En phase de développement, vous devriez être en mesure d'ajouter à votre dossier de ressources pour le classpath avec un paramètre de ligne de commande (java -cp ressources dans Java SE), ou avec une autre IDE de réglage.
Si vous êtes vraiment intéressé dans le chargement des images à partir de la réalité du système de fichiers, vous pouvez utiliser l'option FileConnection API (http://developers.sun.com/mobility/apis/articles/fileconnection/). Le combiné de soutien pour cette API est limitée. Pour les images statiques de la classe est le chemin à parcourir.
OriginalL'auteur msell
Tout d'abord de placer votre image dans le package par défaut.
J'ai mis "Mes emplacements Réseau.png" dans le package par défaut.
Puis créer une MIDlet nommé "ImageItemExample"
puis copiez code ci-dessous dans MIDlet fichier.
OriginalL'auteur Vikesh
Ma conjecture est que
déclenche une exception qui empêche la création d'un nouvel objet de type ImageItem qui laisse votre imageItem variable à null. Cela vous donne l'exception de pointeur null.
N'est pas votre fichier Image.png et pas Pictur.png?
OriginalL'auteur Prashast
Vérifier que le fichier image.png existe réellement
en fonction de l'émulateur de périphérique/IDE, il devrait y avoir un moyen de mettre le répertoire "HOME" de l'appareil. Dans votre cas, ce serait "C:\"
OriginalL'auteur user128026