Comment puis-je afficher une image bitmap dans une applet Java?
Je vais avoir du mal à trouver comment afficher une Image (ou ImageIcon) dans une applet Java. Voici mon code. L'image de test.bmp) existe et est sur le disque D mais lorsque je l'exécute j'obtiens la fenêtre de l'applet avec rien dedans. Quelqu'un peut-il me dire ce que je suis en manque pour faire de la ImageIcon spectacle?
public class Form1 extends JApplet {
ImageIcon i;
public void init(){
i = new ImageIcon("D:\test.bmp");
}
public void paint(Graphics g){
i.paintIcon(this, g, 0, 0);
}
}
Merci, Steve.
OriginalL'auteur beyerss | 2009-06-25
Vous devez vous connecter pour publier un commentaire.
Le référencement de votre image par le biais d'un absolu chemin de fichier local peut ne pas fonctionner lorsque vous exécutez l'applet à partir d'un serveur.
Utiliser le ImageIcon (URL) constructeur etl'URL de point à l'image de la ressource sur le serveur. Utiliser le JApplet.getCodeBase() pour déterminer où votre applet est à l'origine et ajouter le nom de fichier.Edit: ImageIO supporte les formats BMP et la modification de l'exemple fonctionne pour moi.
Edit 2: Si cela ne fonctionne toujours pas d'affichage de l'image, essayez de "../test.bmp" car lorsque vous exécutez l'applet permet de dire Eclipse il a le
bin
répertoire que la base de code.Edit 3: Si vous mettez votre test.bmp dans le pot ou sur le chemin de la classe, vous pouvez le charger à l'aide de la même manière, mais en remplaçant
avec
OriginalL'auteur akarnokd
Pour commencer, il est probablement une bonne idée de correctement s'échapper de votre \ que \\.
Édité à ajouter: vous voulez probablement Vous apprendre votre langue (ou bibliothèque) équivalent de Chemin.combiner (ou d'un Fichier.join) qui est une méthode pour prendre une liste de chemin d'accès au fichier des pièces et en les combinant avec la plate-forme appropriée séparateur de chemin. Ou vous pouvez écrire vous-même rapidement en Java, comme le séparateur de chemin est documenté dans Fichier.pathSeparator.
(Sur le dessus de ma tête, je ne savais pas que la barre oblique travaille toujours dans ImageIcon, mais remarque l'autre réponse qui indique que cela).
En outre, assurez-vous que vous chargez un fichier pris en charge, tels que .png, .gif ou .jpg. BMP peuvent être pris en charge dans le JDK 1.5
Aussi, si vous exécutez dans une Applet contexte, vous ne pouvez pas avoir accès à la trajectoire en question en raison de sandboxing règles. Dans ce cas, la rendre disponible dans la même voie que le fichier HTML d'hébergement de l'applet (éventuellement dans le Bocal du chemin, si je me souviens), et d'utiliser un chemin relatif.
+1 c'est probablement la question. La seule raison pour laquelle vous n'obtenez pas une erreur de compilation, c'est parce que "\t" est valide séquence d'échappement pour les caractères de tabulation.
Ce qui nous amène à la deuxième leçon: Vérifier si init (ouvrir le fichier) a été un succès.
-1, ce n'est pas une réponse mais un commentaire. Devrait aller dans la section des commentaires. bit.ly/MohSi
Comment est-ce pas une réponse? Il est à signaler deux problèmes potentiels (mauvais caractère d'échappement et invalide possible type d'image) et comment les corriger.
OriginalL'auteur JasonTrue
Au lieu de faire une ImageIcon qui est dit de dessiner lui-même sur un graphique, essayez de cette façon:
Aussi, vous pouvez essayer de l'utiliser .png au lieu d'un .fichier bmp.
OriginalL'auteur Matt Poush
ImageJ est une application Open Source /bibliothèque qui dispose d'un support pour le mois de mai formats tels que BMP.
Voici le code réel, à l'aide de BMPDecoder de ImageJ:
Ici est la déclaration de licence.
OriginalL'auteur Clint
De la Java Docs:
OriginalL'auteur schnaader
bmp fichiers ne sont pas supprted en java.
Vous devriez probablement envisager unsing d'autres formats tels que .png, .gif ou .jpg
Si vous avez vraiment ONT à faire, voici un article du Monde Java qui explique comment lire les bits du fichier de la carte et de l'interpréter.
Java Astuce 43: Comment lire les 8 et 24 bits de Microsoft Windows bitmaps dans les applications Java de JavaWorld
Je n'ai jamais essayé mais
OriginalL'auteur OscarRyz