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

Composants Java Discussion :

[i18n] écrire en Chinois dans un JTextField


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2009
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 52
    Par défaut [i18n] écrire en Chinois dans un JTextField
    Bonjour, je dois développer une application destinée a être utilisée sur des écrans tactiles en Chine. Mon problème est simple, je n'arrive pas à ecrire ou afficher de caracteres Chinois dans des jTextField et je ne trouve pas de solution claire sur internet..

    Je fonctionne avec Window et Debian, sous ces 2 systèmes d'exploitation j'ai les polices d'écriture Chinoises d'installées et je peux ecrire en Chinois comme bon me semble dans les fichiers texte, sur MSN... mais pas dans les jTextField de l'application quand je la lance.

    Quelqu'un sait-il pourquoi et comment résoudre mon problème?

    Merci beaucoup.

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 918
    Billets dans le blog
    54
    Par défaut
    Quelles sont la Locale et l'InputMethod du composant que tu utilises ?
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Membre averti
    Inscrit en
    Août 2009
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 52
    Par défaut
    Je ne sais pas comment puis-je trouver ces informations ? Je n'apercois rien qui ressemble au type d'encodage du texte dans Netbeans.. Je pense qu'il faut que je passe en UTF8 mais je ne sais pas comment faire..

    Merci beaucoup de te pencher sur mon problème.. et désolé je suis quasi débutant en Java..

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 918
    Billets dans le blog
    54
    Par défaut
    Voir :

    Locale (la classe gerant les langues et pays) : http://java.sun.com/javase/6/docs/ap...il/Locale.html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Locale mainLandChineese = new Locale(Locale.CHINEESE, Locale.CHINA);
    Locale taiwanChineese = new Locale(Locale.CHINEESE, Locale.TAIWAN);
    La methode setLocale() sur la classe Component : http://java.sun.com/javase/6/docs/ap...va.util.Locale)

    Les methodes liee aux methodes de saisie :
    http://java.sun.com/javase/6/docs/ap...tInputContext()
    http://java.sun.com/javase/6/docs/ap...va.util.Locale)

    Generalement (ex: dans le cas de l'arabe) changer la Locale est suffisant pour d'afficher correctement du texte en arabe. Il faut bien sur utiliser egalement des polices qui disposent des bons glyphes.
    L'utilisation de la bonne Locale est utile tout ce qui est formattage de nombres, etc. et aussi l'orientation des composants a l'ecran pour certains layouts etc... La Locale (couple langue + pays) par defaut est donnee par les options regionnales de l'OS sous-jacent. Il est possible de changer la locale par defaut au demarrage soit via la ligne de commande soit en faisant Locale.setDefault(uneNouvelleLocale).

    Si meme apres le changement de Locale, tu ne peux pas saisir du texte en chinois c'est qu'il faut changer les methodes de saisie (et la franchement je n'ai aucune idee de comment faire).
    Evidement ce ne sera probablement utile que sur ton systeme, un ordi deja en chinois, devrait accepter directement du texte dans cette langue.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Membre averti
    Inscrit en
    Août 2009
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 52
    Par défaut
    Merci Bouye pour ces explications,

    J'ai créé une nouvele locale

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public static Locale mainLandChinese = new Locale("zh","CN");
    puis j'ai attribué à mon composant la locale

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myTextField.setLocale(mainLandChinese);
    ceci dit je ne parviens toujours pas à écrire en Chinois dans mon JTextField. Si je fais copie coller d'un texte chinois dans mon JTextField, il s'affiche correctement. Mais quand je positionne mon curseur dans le JTextFiels, SCIM (le programme Debian qui permet habituellement de taper du texte en Chinois) ne m'offre pas la possibilité d'écrire en Chinois je ne sais pas pourquoi...

    (Je n'ai par contre pas compris comment utiliser getInputContext et setInputMethod)

    Merci en tout cas pour ton aide Bouye, si tu as d'autres idées elles sont les bienvenue..

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 918
    Billets dans le blog
    54
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. Comment empêcher d'écrire dans JTextArea / JtextField ?
    Par UiYuki dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 28/03/2009, 12h11
  2. Entrer dans un JTextField
    Par Pfeffer dans le forum Composants
    Réponses: 3
    Dernier message: 04/05/2005, 14h43
  3. [VBA Excel] Comment écrire un code dans le ThisWorkBook ?
    Par WebPac dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/05/2005, 15h03
  4. Réponses: 9
    Dernier message: 05/04/2005, 09h39
  5. [FileWriter] écrire à la suite dans un fichier.
    Par LoLoSS dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 24/06/2004, 14h56

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