Comment définir l'Icône d'un JLabel à partir d'une image à partir d'un dossier?
Je suis en train de mettre une icône à un JLabel à partir d'un dossier d'images à chaque fois qu'un élément est sélectionné à partir d'un JComboBox. Le nom de l'élément dans la JComboBox et le nom des images dans le dossier sont les mêmes. Ainsi, lorsqu'un élément est sélectionné dans la JComboBox, le correspondant de l'image avec le même nom doit être définie comme une icône de la JLabel. Je suis en train de faire quelque chose comme cela.
private void cmb_movieselectPopupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent evt){
updateLabel(cmb_moviename.getSelectedItem().toString());
}
protected void updateLabel(String name) {
ImageIcon icon = createImageIcon("C:\\Users\\xerof_000\\Pictures\\tmspictures\\" + name + ".jpg");
if(icon != null){
Image img = icon.getImage();
Image newimg = img.getScaledInstance(lbl_pic.getWidth(), lbl_pic.getHeight(), java.awt.Image.SCALE_SMOOTH);
icon = new ImageIcon(newimg);
lbl_pic.setIcon(icon);
lbl_pic.setText(null);
}
else{
lbl_pic.setText("Image not found");
lbl_pic.setIcon(null);
}
}
protected static ImageIcon createImageIcon(String path) {
URL imgURL;
imgURL = NowShowing.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
} else {
return null;
}
}
Je pensais que le problème est dans le "C:\Users\xerof_000\Pictures\tmspictures\" j'ai essayé d'utiliser "C:/Users/xerof_000/Pictures/tmspictures/", mais même cela n'a pas fonctionné. Et quoi que je fasse, il montre que "l'Image n'est pas trouvée" sur le JLabel.
- Jetez un oeil à cette réponse de la mine, pour Comment ajouter des images à votre dossier de ressources, qui pourrait sera de peu d'aide sur le sujet 🙂 Le dernier lien vous guidera sûrement, si tu fais tout manuellement sans l'aide d'aucune IDE. Si quelque chose n'est toujours pas clair, merci de la poser 🙂
- Pourquoi faire quelque chose de si compliqué quand
new ImageIcon("C:\\Users\\xerof_000\\Pictures\\tmspictures\\" + name + ".jpg");
allons travailler immédiatement? (bien que ce n'est pas très facile à gérer car il ne fonctionne que sur votre ordinateur, je suis d'accord). - Je le fais à partir de NetBeans donc j'ai vérifié le NetBeans lien. La chose est, je suis également l'insertion d'images dans le dossier images lors de l'exécution de l' .fichier jar. Et je ne peux pas ajouter des images dans le lot dans la .jar fichier lors de l'exécution de l' .fichier jar ne puis-je pas? Donc, il y a un moyen pour que je puisse lire les images d'un dossier où l' .le fichier jar est exécuté à partir de?
- Merci de ce que fait un travail pour moi. Mais est-il une manière que je peux lire les images d'un dossier où l' .le fichier jar est exécuté à partir de?
- Oui, si le dossier est sur le chemin de la classe, ou de l'enfant-dossier d'un dossier sur le chemin de la classe. En supposant que vous avez un dossier
root
contenant un potfoo.jar
et une imagebar.png
, si vous exécutez votre programme avecjava -cp .;foo.jar
(Windows)/java -cp .:foo.jar
(Unix/Linux/MacOS), vous pouvez accéder au fichier avecgetResource("/bar.png");
. Vous pouvez également incorporé directement le fichier dans le bocal - Ensuite, vous pouvez simplement ajouter cette ligne à votre
manifest
fichier,Class-Path: .
, cela permettra le contenu du répertoire en cours pour être sur leCLASSPATH
, pour le .le fichier jar à l'accès. - J'avais réussi à fournir un exemple de code, pour vous de regarder. S'il vous plaît ne laissez-moi savoir si ce n'est pas ce que vous avez l'intention de dire.
Vous devez vous connecter pour publier un commentaire.
C'est ma structure de répertoire :
C'est le contenu de la ComboExample.java fichier :
MAINTENANT LA COMPILATION :
Pour compiler j'ai fait ceci :
Contenu du Fichier Manifeste :
Fichier JAR création :
Maintenant, prenez cette
JAR File
à n'importe quel endroit ayant ces images (), et exécutez leJAR File
, et de voir les résultats 🙂Tel que discuté dans Comment Utiliser les Icônes, le
getResource()
méthode s'attend à trouver l'image dans votre programme fichier JAR. Vous aurez besoin de déplacer l'image dans votre projet.IconDemo
est un exemple complet.new ImageIcon(path)
.Puisque vous utilisez jLabel, vous pouvez simplement utiliser des balises HTML, juste de commencer le texte de l'étiquette avec < html > et utiliser des balises HTML dans l'étiquette, comme tu veux, en tour cas :
< img src=filepth\imagefile.jpg >
U peut l'utiliser pour remplacer : ). Avec le sourire de l'icône.