Tym-Project

From: SUPINFO
To: Tous
Subject: IT

Insérer Des Images Et Les Ajouter Au .jar (Java)

Pour ajouter des images à votre application vous avez différentes solutions, mais attention, toutes ne fonctionnent pas correctement ! Voici donc comment procéder pour avoir un programme fonctionnel une fois compilé…

Pour notre exemple partons du principe que l’on veut associer une image à un bouton (une icône donc). Comme nous sommes organisés, on stocke l’image dans le package “resources”.
Du point de vue du système un package est simplement un dossier, voici donc comment créer notre icône :

printButton = new JButton(newImageIcon(".\\src\\ressources\\print.png"));

Le constructeur de notre bouton permet de l’associer à une image, et le constructeur de l’ImageIcon peut prendre en paramètre le CHEMIN de l’image. Si vous lancez votre programme avec votre IDE, tout va bien elle est bien là. Mais si vous créez un .jar…pouf, disparue !

Et c’est tout à fait normal car dans le .jar plus de notions de “chemins” : si ce n’est pas compilé, ce n’est pas présent. Un  point c’est tout.

Il faut donc indiquer par un moyen ou un autre à notre IDE de “compiler” les images.Voici comment je procède :

ClassLoader classLoader = getClass().getClassLoader();
URL file = classLoader.getResource("resources/print.png");

Je définis un ClassLoader correspondant à ma classe en cours. Il sert à localiser et générer des données constituant la définition de la classe.
J’utilise alors mon ClassLoader pour créer une URL servant donc à localiser mon image. Remarquez bien que l’on donne un chemin non pas dans un système de fichiers, mais sous forme de package ! C’est là la clé de notre problème : le compilateur va intégrer correctement l’image au .jar car elle est définie comme faisant partie d’un package.

Nous pouvons maintenant instancier notre bouton :

printButton = new JButton(new ImageIcon(file));

Bonnes insertions ;-)

Comments