2009-05-21 7 views
3

[EDIT] cela s'est passé sur OSX avec Java 1.5! (mais peut aussi arriver sur Windows!)Java Locale Police question ..?

Il semble que les utilisateurs japonais de mon programme Java Swing ne peuvent pas écrire de symboles japonais dans JTextFields. En fait, ils peuvent les écrire mais ne les voient pas. Ils ne voient que des blocs qui indiquent d'une manière ou d'une autre que je pense que la police ne supporte pas ces symboles.

J'ai défini ma propre police pour diverses raisons ("Lucida Sans", Font.PLAIN, 12) - que je ne voudrais pas changer. Mes questions sont:

  1. les JTextFields afficheraient-ils des symboles japonais sans que je mette cette police?

  2. Puis-je détecter quels paramètres régionaux sont entièrement pris en charge par ma police et ne le définir que dans ces cas, mais laisser la police Java standard pour tous les autres cas comme Locale.Japan?

  3. avez-vous d'autres suggestions?

Nous vous remercions de votre aide!

Répondre

2

Pour cette raison, mon application internationalisée définit sa police en fonction des paramètres régionaux. Pour répondre à vos questions:

  1. Cela dépend probablement de la version de Windows utilisée. Est-ce l'édition américaine avec les polices japonaises installées, ou est-ce la version vendue au Japon? Je ne connais pas la réponse exacte à votre question, mais je m'attends à ce que la réponse soit: «Ça dépend».

  2. Je ne connais aucun moyen standard pour ce faire. J'ai trouvé une utilité merveilleuse pour enquêter sur ce genre de chose: BabelMap. Cela vous dira exactement quels caractères sont supportés par une police donnée. Autres suggestions: Définissez votre police en fonction des paramètres régionaux, au moins pour certains paramètres régionaux.

+0

cela s'est passé sur OSX avec Java 1.5! (mais peut aussi arriver sur Windows). –

+0

Dans BabelMap - quel est le nom de bloc Unicode correspondant aux symboles japonais? –

+0

Katakana est probablement le bloc Unicode que vous voulez. – Eddie

3

aurait les JTextFields montrer symboles japonais sans me mettre cette police?

Probablement parce que JRE choisira la valeur par défaut.

que je pourrais détecter qui sont entièrement pris en charge par sa locale ma police et seulement le mettre dans les cas mais laisser la police standard Java pour tous les autres cas comme Locale.Japan?

Oui, en théorie, bien plus facile serait de tester si cette police peut afficher un caractère spécifique de paramètres régionaux en utilisant la méthode de la canDisplay(char) Font. Si ce n'est pas le cas, vous pouvez passer à la valeur par défaut.

Avez-vous d'autres suggestions?

Here's a link on this topic that may help

Avez-vous un lien pour votre produit?

+0

désolé, pas de lien. –