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 pot foo.jar et une image bar.png, si vous exécutez votre programme avec java -cp .;foo.jar (Windows)/java -cp .:foo.jar (Unix/Linux/MacOS), vous pouvez accéder au fichier avec getResource("/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 le CLASSPATH, 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.

InformationsquelleAutor Raed Shahid | 2013-03-03