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 :

[JFormattedTextField] Forcer l'écriture en romajis (caractères romains)


Sujet :

Composants Java

  1. #1
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut [JFormattedTextField] Forcer l'écriture en romajis (caractères romains)
    Bonjour,

    Je viens d'être confronté à un problème majeur (et peut être un bug) dans un JFormattedTextField :

    Supposons un JFormattedTextField déclaré ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JFormattedTextField frequencyNumber=new JFormattedTextField(NumberFormat.getInstance());
    ainsi que d'autres TextField.

    Mon utilisateur écrit en japonais du texte dans les textfields, puis, par navigation tabulée, il arrive sur mon textfield formatté, toujours en japonais.

    Si il écrit des chiffres (toujours en étant en japonais), le textfield formatté affiche des trucs bizarre, allant de 1 ou 2 zéros en début de chiffre jusqu'à des duplications de chiffres. Pourtant, sa valeur est correcte.

    J'aimerai savoir si il était possible en java de faire, lorsque le focus est pris et que l'évènement focusGained est déclanché, de forcer l'utilisateur à passer à la saisie en romajis (caractères romains) ?

    Si non, quelle solution ai-je ?

    Merci d'avance

    Fred

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    Je connais pas trop le japonais, mais si tu fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NumberFormat.getInstance(Locale.JAPAN)
    ,
    ca résoud pas ton problème? Je ne pense pas en tout cas que java aie le moindre controle sur les méthodes de saisie, elles sont gérées par l'OS, donc le mieux serait de laisser ton japonais écrire le nombre en japonais ^^.

  3. #3
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Non, c'est pas ça le problème.

    Ce que tu me proposes va changer la façon dont le textfield formatte les nombres à l'affichage. Moi j'ai un soucis lorsque j'écris des nombres alors que le système d'exploitation est défini pour écrire en japonais (ca écrit tout de même des chiffres tout à fait normaux, sauf pour java qui se viande à l'affichage après).

    Je veux pouvoir forcer l'écriture en chiffres "purs", j'entends passer outre le système de saisie et forcer à écrire sans formattage japonais

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    t'a vérifié ce qui se passe si tu initialise le champ avec, par exemple "1234567890", histoire de voir si ce serait pas un soucis de fonte?

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 913
    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 913
    Billets dans le blog
    54
    Par défaut
    Sais pas si c'est lié mais j'ai toujours trouvé des trucs bizarre sur les systèmes japonais (Windows) comme quand ils veulent taper \, ils tapent en fait ¥ sur le clavier, ca affiche ¥ à l'écran mais le système l'interprête comme étant un \
    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

  6. #6
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    t'a vérifié ce qui se passe si tu initialise le champ avec, par exemple "1234567890", histoire de voir si ce serait pas un soucis de fonte?
    En fait tant qu'on n'utilise pas de japonais, tout fonctionne à merveille, pas de bug d'affichage ni rien du tout

    Citation Envoyé par bouye Voir le message
    Sais pas si c'est lié mais j'ai toujours trouvé des trucs bizarre sur les systèmes japonais (Windows) comme quand ils veulent taper \, ils tapent en fait ¥ sur le clavier, ca affiche ¥ à l'écran mais le système l'interprête comme étant un \
    Oui, ils n'ont pas d'\ dans leur polices, mais c'est bien un \ qui est interpretté, c'est juste leur facon de l'écrire qui diffère. Entre nous, les japonais sont un peu chiants pour ca, ils ont des tas de truc inutiles, ils peuvent écrire les caractères romains en gros et en petit spécialement dans leur langue... en appuyant sur F7 ou F8 on a deux versions d'une lettre majuscule différentes

    Sinon, pour ce qui est de mon problème, en oubliant le fait que le problème vienne du japonais, y-a-t-il un moyen de forcer la méthode de saisie sous java ?

    Merci d'avance

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    c'est l'os qui controle la méthode de saisie, a moins d'inclure du java natif, je vois pas trop ce que tu pourrait changer là dessus.

  8. #8
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    c'est l'os qui controle la méthode de saisie, a moins d'inclure du java natif, je vois pas trop ce que tu pourrait changer là dessus.
    Ok, donc autre question, puis-je savoir quelle méthode de saisie est sélectionnée (en l'occurence si je suis en japonais ET en mode saisie d'hiraganas / kanjis) dans mon OS, et ce grâce à java ?

    Celà me permettrai, si je le sais, de changer avec le racourci clavier (alt+shift ou autre) dirrectement lors du focus.

    Merci d'avance

  9. #9
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 913
    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 913
    Billets dans le blog
    54
    Par défaut
    Voir java.awt.im.spi.InputMethod et java.awt.im.InputContext

    Citation Envoyé par javadoc
    The Java Platform supports input methods that have been developed in the Java programming language, using the interfaces in the java.awt.im.spi package, and installed into a Java SE Runtime Environment as extensions. Implementations may also support using the native input methods of the platforms they run on; however, not all platforms and locales provide input methods. Keyboard layouts are provided by the host platform.
    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

  10. #10
    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 dis peut-être une bêtise (peut pas tester), mais pourquoi ne pas forcer la locale du composant et du numberformat dans ce cas précis.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    		JFormattedTextField frequencyNumber;
    		if ("ja".equals(Locale.getDefault().getLanguage())) {
    			frequencyNumber = new JFormattedTextField(NumberFormat.getInstance(Locale.US));
    			frequencyNumber.setLocale(Locale.US);
    		} else {
    			frequencyNumber = new JFormattedTextField(NumberFormat.getInstance());
    		}
    a++

  11. #11
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Salut,


    Je dis peut-être une bêtise (peut pas tester), mais pourquoi ne pas forcer la locale du composant et du numberformat dans ce cas précis.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    		JFormattedTextField frequencyNumber;
    		if ("ja".equals(Locale.getDefault().getLanguage())) {
    			frequencyNumber = new JFormattedTextField(NumberFormat.getInstance(Locale.US));
    			frequencyNumber.setLocale(Locale.US);
    		} else {
    			frequencyNumber = new JFormattedTextField(NumberFormat.getInstance());
    		}
    a++
    Salut,

    J'ai essayé de forcer la locale, mais ça n'a pas fonctionné.

    Je pense que j'ai là un bug de java.

Discussions similaires

  1. Forcer l'écriture d'un Export Excel
    Par subnox dans le forum VBA Access
    Réponses: 2
    Dernier message: 15/10/2007, 13h41
  2. Forcer l'écriture sur un flux de sortie ?
    Par Alfred83 dans le forum SL & STL
    Réponses: 3
    Dernier message: 29/05/2007, 13h05
  3. Forcer l'écriture sur un flux de sortie ?
    Par Alfred83 dans le forum C++
    Réponses: 3
    Dernier message: 29/05/2007, 13h05
  4. forcer l'écriture sur 4 positions
    Par dassise dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 26/10/2006, 23h28
  5. forcer l'écriture d'un champ de formulaire
    Par goma771 dans le forum Langage
    Réponses: 7
    Dernier message: 21/02/2006, 19h32

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