Maison >Java >javaDidacticiel >Comment puis-je afficher des images à partir d'un fichier JAR dans une application Java Swing ?

Comment puis-je afficher des images à partir d'un fichier JAR dans une application Java Swing ?

DDD
DDDoriginal
2024-12-07 19:53:18492parcourir

How Can I Display Images from a JAR File in a Java Swing Application?

Récupération d'images à partir de fichiers Jar dans Java Swing

Problème :

Lors de l'exécution d'une application Java dans l'environnement de développement Eclipse, les images sont affichées avec succès à l'aide d'ImageIcon. Cependant, lors du packaging de l'application dans un JAR, le chemin de l'image devient corrompu.

Questions :

  • Les images peuvent-elles être extraites d'un JAR au moment de l'exécution pour des fins ultérieures. display ?
  • Existe-t-il des approches alternatives pour résoudre ce problème tout en conservant un seul fichier JAR distribution ?

Réponse :

Pour résoudre ce problème, utilisez les techniques suivantes :

  • Création d'une icône d'image à partir d'une image JAR :

Pour construire une ImageIcon à partir d'une image à l'intérieur le même JAR que le code chargé :

new javax.swing.ImageIcon(getClass().getResource("myimage.jpeg"))

getClass().getResource renvoie une URL pour la ressource spécifiée ou null si aucune ressource n'est trouvée. ImageIcon a un constructeur qui accepte une entrée URL pour le chargement de l'image.

  • Création d'une URL pour une ressource JAR :

Si la ressource souhaitée est stocké dans un JAR au-delà du « chemin de classe », suivez l'approche décrite dans la documentation de java.net.JarURLConnection. Ce processus implique la construction d'un objet URLConnection et l'accès à la ressource via son flux d'entrée.

En utilisant ces techniques, vous pouvez conserver les avantages de la distribution de fichiers JAR uniques tout en récupérant et en affichant efficacement les images à partir des fichiers JAR.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn