IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Laf & ClassLoader


Sujet :

AWT/Swing Java

  1. #1
    Membre chevronné Avatar de xixi31
    Inscrit en
    Juin 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2005
    Messages : 423
    Par défaut Laf & ClassLoader
    Bonjour à tous,

    Voilà, je me heurte à un problème de changements de look and feel.
    Je travaille sur un projet utilisant un mécanisme de plugin type Eclipse.
    J'ai packagé un certain nombre de LookAndFeel (Napkin, etc...) dans un plugin à part (donc, dans un ClassLoader différent) mais j'ai le problème suivant : Lors de la tentative de modification du lookAndFeel via UIManager, bien évidemment, la classe LookAndFeel n'est pas trouvée.

    Avez vous déjà rencontré ce genre de problème? est-il possible de passer un ensemble de ClassLoader à UIManager?


    D'avance merci...

  2. #2
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    Salut,

    tu es sur d'avoir dis a eclipse ou chercher les .jar (properties -> java build path ...)
    si oui fais voir les nom de classe que tu utilises, je pourrais te dire s"ils sont bons déja

  3. #3
    Membre chevronné Avatar de xixi31
    Inscrit en
    Juin 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2005
    Messages : 423
    Par défaut
    mais pas vraiment Eclipse en fait ...

    En fait, je me demande simplement s'il existe un moyen de préciser dans UIManager ou autre ( au sein de l'api sun ) un autre ClassLoader ou si l'appel permettant le changement du LookAndFeel doit obligatoirement se faire dans un ClassLoader connaissant toutes les classes LookAndFeel???

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Quel code tu utilises pour changer de LookAndFeel ? UIManager.setLookAndFeel(LookAndFeel) devrait fonctionner non ?

    a++

  5. #5
    Membre chevronné Avatar de xixi31
    Inscrit en
    Juin 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2005
    Messages : 423
    Par défaut
    Quel code tu utilises pour changer de LookAndFeel ? UIManager.setLookAndFeel(LookAndFeel) devrait fonctionner non ?
    J'utilise exactement cette méthode, mais au sein d'un ClassLoader qui ne possède pas les références vers la librairie qui contient la classe renvoyée par l'instance de LookAndFeel.

  6. #6
    Membre chevronné Avatar de xixi31
    Inscrit en
    Juin 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2005
    Messages : 423
    Par défaut
    je crois qu'il va falloir que je me débrouille autrement .

    Merci pour vos réponses.

  7. #7
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Un ClassLoader peut être lié à un parent. Il suffirait que les ClassLoader de tes plugins soient affilié au ClassLoader de ton application (cf le constructeur ClassLoader(ClassLoader parent)).

  8. #8
    Membre chevronné Avatar de xixi31
    Inscrit en
    Juin 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2005
    Messages : 423
    Par défaut
    oui, c'est vers cette solution que je vais m'aiguiller.

    merci.

  9. #9
    Membre chevronné Avatar de xixi31
    Inscrit en
    Juin 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2005
    Messages : 423
    Par défaut
    J'ai découvert pas hasard cette solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UIManager.getDefaults().put("ClassLoader", this.getClass().getClassLoader());
    Le ClassLoader passé en paramètre est utilisé par la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public ComponentUI getUI(JComponent target)
    de la classe UIDefaults.

    Cela permet donc de spécifier un autre ClassLoader lors de la recherche d'une classe héritant de ComponentUI...

    Ca règle pour le moment mon problème mais je ne sais pas les inpacts que cela peut avoir...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/04/2009, 01h43
  2. [ClassLoader][Image] issue d'un jar en constante
    Par julp dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 23/04/2007, 23h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo