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 :

JLabel - afficher des caractères Unicode asiatiques


Sujet :

AWT/Swing Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 429
    Points : 475
    Points
    475
    Par défaut JLabel - afficher des caractères Unicode asiatiques
    Bonjour,

    Je cherche à afficher 你好 (ni hao, "bonjour" en chinois) dans un JLabel et comme titre de ma JFrame.

    Mais l'exécution du code minimal ci-dessous ne fonctionne pas. J'obtiens des carrés à la place des caractères. Pourtant, ils sont directement codés en unicode dans la String.

    Précision : je viens de passer en Java 1.6.0 sous Netbeans 5.5
    Le problème n'apparaissait pas en Java 1.5 sous Netbeans 5.

    Merci d'avance pour vos lumières,
    Cordialement,

    Nicolas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    // appeler le fichier Test.java
     
    import javax.swing.*;
     
    public class Test extends JFrame {
     
        public Test() {
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setSize(300, 300);
            this.setLocationRelativeTo(null);
            String s = "en chinois : \u4f60\u597d"; 
            this.setTitle(s);
            this.add(new JLabel(s));
        }
     
        public static void main(String[] args) {
            new Test().setVisible(true);
        }
    }

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 429
    Points : 475
    Points
    475
    Par défaut
    Le problème est apparemment résolu en forçant une police "chinoise" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myLabel.setFont(new Font("Arial Unicode MS", Font.PLAIN, 12));
    Mais cette police est une police Windows installée sur mon ordinateur.
    Cela ne semble pas une solution portable.
    Je pensais que Java gérait lui-même l'affichage Unicode.
    Est-ce dépendant des polices installées sur l'ordinateur de l'utilisateur ?

    Merci d'avance pour votre aide,
    Cordialement,

    Nicolas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    // appeler le fichier Test.java
     
    import java.awt.*;
    import javax.swing.*;
     
    public class Test extends JFrame {
     
        public Test() {
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setSize(300, 300);
            this.setLocationRelativeTo(null);
            String s = "en chinois : \u4f60\u597d";
            this.setTitle(s);
            JLabel myLabel = new JLabel(s);
            myLabel.setFont(new Font("Arial Unicode MS", Font.PLAIN, 12));
            // ou "MS Mincho""
            this.add(myLabel);
        }
     
        public static void main(String[] args) {
            new Test().setVisible(true);
        }
    }

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Ah bah c'est ce qu'il me fallait ça marche bien! (cf mon post sur l'unicode)

    "Arial Unicode MS" est installée par défaut alors devrait pas y a voir trop de soucis. Sinon en cas de problème tu proposes la font. C'est pas très jojo tout ça j'avoue...

Discussions similaires

  1. [Debutant] Afficher des chaines unicodes avec println
    Par MichaelB dans le forum Langage
    Réponses: 2
    Dernier message: 10/01/2007, 19h39
  2. Afficher des caractères et leur code ASCII
    Par hamada_10 dans le forum Pascal
    Réponses: 8
    Dernier message: 26/12/2006, 19h38
  3. [ImageMagick] Mon image affiche des caractères étranges
    Par renaud26 dans le forum Bibliothèques et frameworks
    Réponses: 14
    Dernier message: 17/03/2006, 17h37
  4. Réponses: 4
    Dernier message: 14/10/2005, 09h15
  5. [JLabel] Afficher des images
    Par Bouki dans le forum Composants
    Réponses: 8
    Dernier message: 25/03/2005, 10h38

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