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

Langage Java Discussion :

Afficher du wingdings en Java


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 747
    Par défaut Afficher du wingdings en Java
    Bonjour à tous,

    Comme dit dans le titre, je voudrais afficher les caractères wingdings suivants
    - sablier : code 54
    - horloge : code 192
    - ? dans un losange : code 180

    J'ai trouvé ce tableau de correspondances sur le net :
    http://www.alanwood.net/demos/wingdings.html

    J'utilise ce code, en utilisant unicode :
    label = new Label(0,count,"\u231B", wingdings210pt); // sablier

    Pour le sablier, tout se passe bien. Par contre, pour les autres, j'ai soit aucune correspondance, soit un carré qui s'affiche.

    Quelqu'un saurait-il comment je pourrais m'y prendre ? Dois-je laisser tomber unicode car j'ai l'impression que je fais fausse piste ?

    Merci

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    En fait \u231B n'a rien à voir avec wingdings. Unicode définit un caractère qui représente un sablier, et lui donne le code U+231B. Wingdings n'est pas lié à ça.

    C'est juste que tu as une fonte sur ta machine, accessible à Java, qui connaît le caractère U+231B et sait donc le dessiner. Ce n'est pas Wingdings. Wingdings ne respecte pas Unicode.
    Du coup, Wingdings n'est pas très utile en 2013, où beaucoup de gens utilisent des machines où il n'existe pas.


    Pour accéder aux caractère d'une fonte qui ne respecte pas Unicode, il faut faire un bricolage : ajouter 0xF000 au code du caractère (code défini par la fonte et non pas Unicode, donc).

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public static final char PRIVATE_CHARS_START = 0xF000;
     
    public static final char WD_HOURGLASS = PRIVATE_CHARS_START + 54;
    public static final char WD_CLOCK = PRIVATE_CHARS_START + 192;
     
    Test() {
      String s = "" + WD_HOURGLASS + WD_CLOCK;
      label = new JLabel(s, new Font("wingdings", Font.PLAIN, 14));
    }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    747
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 747
    Par défaut
    Merci thelvin
    Ta solution fonctionne nickel.

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

Discussions similaires

  1. afficher image dicom en java
    Par amnass dans le forum Imagerie
    Réponses: 3
    Dernier message: 20/11/2009, 12h19
  2. [strategie][swing]afficher du HTML avec java
    Par Invité dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 30/04/2008, 10h45
  3. [debutant] applet qui affiche les propriétés de java
    Par charlix dans le forum Applets
    Réponses: 5
    Dernier message: 15/02/2008, 15h14
  4. Afficher un texte en java
    Par vetchang dans le forum Général Java
    Réponses: 6
    Dernier message: 17/11/2007, 17h40

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