Problème look&feel et ClassLoader
Salut,
Si je mets le .jar du look & feel (Trendy) dans le classpath de mon application, ça marche très bien.
http://pix.nofrag.com/1/4/1/f88b5e57...8db1ee0de0.png
Par contre, si je ne le mets pas dans le classpath (je veux être capable de charger et de changer des look&feels dynamiquement), et que je crée un ClassLoader pour qu'il le charge à la volée, ça marche presque... mais pas totalement.
En effet, tout se charge correctement, pas d'exceptions, les composants sont tous bien dessinés avec le look&feel... sauf les bordures (des textfields, des listes, etc...) :
http://pix.nofrag.com/6/7/4/9857d46b...a6b0fbc942.png
Voici mon code (simplifié) qui charge le look&feel :
Code:
1 2 3 4 5 6 7 8 9 10 11
| //Crée un ClassLoader référençant les librairies nécessaires pour le look and feel, en l'occurence ici Trendy_1.8.jar
ClassLoader specificClassLoader = createClassLoader(lookAndFeel.getResources());
//Utilise ce ClassLoader comme ClassLoader principal
UIManager.put("ClassLoader", specificClassLoader);
//Création de l'instance du look and feel
LookAndFeel look = (LookAndFeel) Class.forName(lookAndFeel.getLookAndFeelClassName(), true, specificClassLoader).newInstance();
//Affectation du look and feel
UIManager.setLookAndFeel(look); |
L'appel à createClassLoader(lookAndFeel.getResources()) revient à ceci (je simplifie car c'est beaucoup plus générique que ça) :
Code:
1 2 3
| ClassLoader createClassLoader(String[] lib) {
return new URLClassLoader(new File(libs[0]).toURI().toURL());
} |
J'ai également vérifié, tout est bien exécuté dans l'EDT...
Une idée de la cause du problème?
Merci beaucoup d'avance ! :)