Charge Java Image à l'intérieur d'un package à partir d'une classe dans un package différent
J'ai un projet en Java appelé Monprojet. J'ai un peu différents forfaits (en gardant les noms simples pour le but de cette question), comme suit:
src/PackageA
src/PackageA/PackageAa
src/PackageA/PackageAa/PackageAaa
src/PackageB
src/PackageB/PackageBa
src/PackageB/PackageBa/PackageBaa
J'ai une classe
src/PackageA/PackageAa/PackageAaa/MyJavaFile.java
Et j'ai une image
src/PackageB/PackageBa/PackageBaa/MyImage.png
À l'intérieur de MyJavaFile.java
, je tiens à signaler une Image oject de MyImage.png
Image img = new Image(....what goes here?...)
Comment puis-je faire cela?
Q: Pourquoi êtes-vous en mettre une .png des ressources dans un package Java??? Même si vous mettez des choses .fichier jar, vous aurez généralement un répertoire distinct pour les ressources ("/ressources" Pop Préféré). Par exemple: Ajouter une image Jar. PS: Ce lien répond à votre question précise ... mais je ne vous le conseille, si possible. À mon humble avis...
src/PackageB/PackageBa/PackageBaa/MyImage.png colis sera dossier
Image image = Toolkit.getDefaultToolkit().getImage("Agent.gif");
src/PackageB/PackageBa/PackageBaa/MyImage.png colis sera dossier
Image image = Toolkit.getDefaultToolkit().getImage("Agent.gif");
OriginalL'auteur CodeGuy | 2012-08-28
Vous devez vous connecter pour publier un commentaire.
Vous pouvez soit appeler
Class.getResource
et spécifier un chemin commençant par/
, ouClassLoader.getResource
et de ne pas s'embêter avec le/
:ou:
Fondamentalement
Class.getResource
vous permettra de définir une ressource par rapport à la classe, mais je n'ai pas pense il permet d'utiliser les ".." etc pour le répertoire de navigation.Bien sûr, si vous connaissez une classe dans le package, vous pouvez simplement utiliser:
(Je suis en supposant que vous pouvez passer un
URL
à laImage
constructeur en question. Il y a aussigetResourceAsStream
sur les deuxClass
etClassLoader
.)Une façon est d'utiliser
ImageIO.read(URL)
.OriginalL'auteur Jon Skeet
vous pouvez utiliser un chemin relatif depuis le chemin d'accès relatif est le dossier du projet.
OriginalL'auteur mohamed abdallah
/folderB/folderBa/folderBaa/MyImage.png
image peut stocker dans le dossier du projet de localisation .par exemple: /images/MyImage.png
puis vous essayez, il
À l'aide d'un chemin d'accès au fichier n'est pas possible lors de l'exécution d'un programme dans un fichier jar, surtout si le programme est en train d'être chargé comme un applet ou WebStart application, alors vous pouvez utiliser le chargeur de classe pour obtenir l'image.
utiliser le code suivant pour charger les images:
J'ai besoin de l'image, pas l'icône de l'image. Puis-je simplement faire un getImage()
ceci est incorrect. Je reçois un pointeur null. et oui, le chemin est tout à fait correcte.
où est votre emplacement de l'image . si dans votre paquet dossier, puis corriger. Et c'est dans l'emplacement du dossier ./foldername
Et c'est dans l'emplacement du dossier puis nomdossier/image.png
OriginalL'auteur Mohammod Hossain
C'EST la meilleure façon de traiter toutes les images et les icônes dans un BOCAL App.
Une fois que vous avez zippée l'ensemble de vos images et des icônes dans son propre fichier JAR - Configurer votre build path en ajoutant les images fichier JAR dans votre onglet bibliothèques, de sorte que son désormais inclus dans votre classpath.
Puis il suffit d'utiliser la suite 3x lignes de code au début de votre constuctor pour accéder à n'importe quelle image vous avez besoin pour quoi que ce soit, y compris une boîte à miniatures image qui n'acceptent pas la simple ImageIcon est aussi son principal icône (bizarre je sais). Le 3x lignes sont:
(imageIcon est juste un constructeur déclaré variable d'Image)
Maintenant, vous pouvez définir une icône de la fenêtre comme simplement comme:
et en même temps, utiliser la même variable lors de la configuration du Système TrayIcon en déclarant:
Ci-dessus vous permet de déclarer des Images ou ImageIcons facilement et de manière centralisée, sans courir le risque de ne pas garder l'image des ressources au bon endroit. Il le maintient agréable et bien rangé, avec le JAR contenant toutes vos images compilées automatiquement au moment de l'exécution et de la distribution de votre programme.
Comme un bonus, une fois le POT est enregistré dans votre classpath - vous pouvez continuer d'ajouter tout les autres images dans le même BOCAL, à tout moment, sans trop de chichi - Tout fonctionne et les images ajoutées sont immédiatement disponibles pour votre application.
Beaucoup mieux à mon avis.
OriginalL'auteur Martin Sansone - MiOEE
Utiliser la méthode getResource à lire les ressources à l'intérieur de la src de la racine. Par exemple, le code suivant récupère les images d'un dossier src/images.
L'exemple suppose que les entrées suivantes existent dans l'application fichier JAR:
OriginalL'auteur Lazy Coder