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

API standards et tierces Java Discussion :

[LookAndFeel] preference systeme et utilisateur


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Par défaut [LookAndFeel] preference systeme et utilisateur
    Bonjour,
    Je travaille actuellement sur "un bout de code" que voici.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    try {
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    } catch(Exception e) {
    System.out.println("Error setting native LAF: " + e);
    }
    Ce code est executé lors de l'instanciation du premier panel de l'applet. Bien que sachant ce qu'est un L&F, je ne comprends pas trop cet extrait, et l'API m'embrouille plus qu'autre chose...
    Car il existe des preferences liés au système, d'autre lié à l'utilisateur.... Mais ici, on remplace quoi par quoi?
    D'avance merci.

  2. #2
    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,


    Je ne comprend pas trop ton problème : UIManager.getSystemLookAndFeelClassName() renvoit simplement le nom de la classe qui représente le LookAndFeel le plus proche du système, tandis que UIManager.setLookAndFeel() modifie le LookAndFeel qu'utilisera l'application...

    a++

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Par défaut
    Salut,
    le set ne me pose pas de problème, le get c'est bien ce que j'avais compris.
    Mais normalement, si le L&F n'est pas modifié par une telle ligne de commande lequel sera choisi ? Comme je le disais, il existe plusieurs endroits specifiant des L&F par default.... mais je ne sais pas comment cela se passe au démarage de la JVM ...


    API :
    1 If the system property swing.defaultlaf is non-null ...
    2 If the Properties file swing.properties exists and contains the key swing.defaultlaf ...
    3 Otherwise use the Java look and feel.
    We manage three levels of defaults: user defaults, look and feel defaults, system defaults.
    Le "system property swing.defaultlaf" et le "Properties file swing.properties" sont uniquement modifiable par l'utilisateur ou est il possible par l'intermediaire d'un fichier de config, et non d'une commande, de les modifier ?

  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
    Ah OK...

    En fait si tu ne le précises pas c'est le LookAndFeel Metal qui est utilisé par défaut (aussi appellé JLF : Java Look and Feel). C'est à dire celui dont le nom est retourné par getCrossPlatformLookAndFeelClassName() (mais tu as toutefois d'autre moyen de changer cela).

    C'est indiqué dans l'API de UIManager :
    The default look and feel class is chosen in the following manner:

    1. If the system property swing.defaultlaf is non-null, use it as the default look and feel class name.
    2. If the Properties file swing.properties exists and contains the key swing.defaultlaf, use its value as default look and feel class name. The location of swing.properties may vary depending upon the implementation of the Java platform. In Sun's implementation this will reside in &java.home>/lib/swing.properties. Refer to the release notes of the implementation you are using for further details.
    3. Otherwise use the Java look and feel.
    En bref :
    1. Si la propriétés system swing.defaultlaf est non-nulles, elle est utilisée comme LnF par défaut.
    2. Sinon la propriété est rechercher dans le fichier swing.properties (qui peut varier selon l'implémentation de la JVM).
    3. Sinon c'est le "Java Look and Feel" (metal) qui est utilisé...

    a++

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Par défaut
    ok.
    Et donc de toute manière la seule facon de changer le LAF est de passer par cette fonction. Il n'existe pas de fichier configuration "coté" application (dans le jar, par exemple) .?.

  6. #6
    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
    Citation Envoyé par TabrisLeFol
    ok.
    Et donc de toute manière la seule facon de changer le LAF est de passer par cette fonction. Il n'existe pas de fichier configuration "coté" application (dans le jar, par exemple) .?.
    Tu peux eventuellement en utiliser un que tu chargeras dans les propriétés systeme au démarrage (avant d'afficher ton application) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            // Ouverture d'un fichier à l'intérieur du jar
            InputStream in = ClassLoader.getSystemClassLoader().getResourceAsStream("com/site/pack/config.properties");
            try {
                // Chargement en tant que propriété système
                System.getProperties().load(in);
            } finally {
                in.close();
            }
    a++

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

Discussions similaires

  1. Partage de dossier avec System comme utilisateur
    Par JFmil53_2 dans le forum Windows XP
    Réponses: 1
    Dernier message: 31/01/2011, 11h47
  2. [System.properties] Nom d'utilisateur
    Par bitardo dans le forum JSF
    Réponses: 14
    Dernier message: 14/09/2009, 16h49
  3. Réponses: 4
    Dernier message: 12/07/2006, 14h42
  4. [system C]cherche documentation en français de preference
    Par james-dean dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 14/03/2006, 22h17
  5. autorun programs pour tous les utilisateurs du systeme
    Par mariogarcia dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 14/11/2005, 23h33

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