[ClassLoader][Image] issue d'un jar en constante
Bonjour,
les images utilisées par une classe sont toujours les mêmes et je souhaite donc que cet attribut devienne une constante (final static) au lieu qu'il soit propre à chaque objet. Jusqu'à maintenant j'utilisais :
Code:
1 2 3 4 5 6
|
// Attribut d'instance
private ImageIcon ICON_FOLDER;
// Initialisation dans le construcuteur
this.ICON_FOLDER = new ImageIcon(this.getClass().getClassLoader().getResource("images/mini/folder.png")); |
Bien sûr il n'est pas possible de faire :
Code:
1 2
|
private final static ImageIcon ICON_FOLDER = new ImageIcon(this.getClass().getClassLoader().getResource("images/mini/folder.png")); |
Comment optimiser cela ? Une solution de ce genre conviendrait-elle :
Code:
1 2 3 4 5 6 7 8 9 10
|
private final static ImageIcon ICON_FOLDER = null;
public MonConstructeur {
// ...
if (ICON_FOLDER == null) {
ICON_FOLDER = this.getClass().getClassLoader().getResource("images/mini/folder.png");
}
// ...
} |
Je dois reconnaître l'avantage d'utiliser this.getClass().getClassLoader().getResource(...), c'est qu'il fonctionne lors de l'utilisation d'un JAR ou non.
Merci d'avance
Re: Image issue d'un jar en constante
Citation:
Envoyé par julp
Bien sûr il n'est pas possible de faire :
Code:
1 2
|
private final static ImageIcon ICON_FOLDER = new ImageIcon(this.getClass().getClassLoader().getResource("images/mini/folder.png")); |
Dans cette expression, ce qui gêne, c'est le this, puisque tu es dans le contexte statique.
Cela t'empêche d'obtenir le ClassLoader, puisque tu cherches celui de this, this qui n'existe pas. Il faut trouver le ClassLoader à partir de quelque chose qui existe dans un contexte statique.
Tout dépend des ClassLoaders qui t'entourent. A priori, la meilleure base est ta classe elle même, et, si tu fais MaClasse.class.getClassLoader().get... tu devrais obtenir ce que tu cherches. Mais il existe de nombreuses autres possibilités.
Re: Image issue d'un jar en constante
Citation:
Envoyé par tileffeleauzed
MaClasse.class.getClassLoader().get...
Je ne pense pas que je l'aurais trouvé tout seul. Merci beaucoup c'est tout à fait ce que je souhaitais et ça me permet d'optimiser un peu.
Encore merci, Julp