3 votes

Définition des caractères unicode dans les cadres java

Comment afficher des caractères unicode (par exemple japonais) dans le titre d'un JFrame en java swing dans un système Windows XP sans le pack de langue japonais ? Il semble que le fait de définir le texte du titre en caractères unicode japonais et la police MS Mincho ne suffisent pas. C'est tout ce qu'il faut faire pour afficher des caractères unicode dans les étiquettes Swing ?

4voto

VonC Points 414372

"sans le pack de langue japonais" ?

Il semble que vous devez au moins télécharger la police de la langue ...

alt text

La police est la seule chose qui doit être installée sur votre ordinateur client pour exécuter l'application.

L'utilisation de la police est beaucoup plus facile dans Swing que dans AWT.
Pour les composants AWT, c'est-à-dire ceux qui ont un homologue natif, vous devez personnaliser les paramètres du JRE, c'est-à-dire modifier font.properties dans /jre/lib pour inclure la police que vous avez installée dans chaque type de police.

Dans votre application Swing, il vous suffit de définir la police du composant Swing avant de définir son texte.

Le lien au début du billet contient un exemple complet.
Petit extrait :

JFrame frame = new JFrame();
String string = "\u30b7\u30f3\u30d7\u30eb\u30c6\u30ad\u30b9\u30c8\u30a8\u30c7\u30a3\u30bf";
JLabel label = new JLabel();
label.setFont(new Font("MS Mincho",Font.PLAIN, 12));
label.setText(string);
frame.getContentPane().add(label);
frame.setFont(new Font("MS Mincho",Font.PLAIN, 12));
frame.setTitle(string);

La documentation générale pour java J2SE6 (1.6.0) est la suivante aquí Parmi ceux-ci, il y a le Fichiers de configuration de la police

À partir de Java5, vous n'avez plus besoin du fichier font.properties, puisque vous pouvez charger un fichier de police afin de créer/utiliser une police.

String fontFileName = "yourfont.ttf";
InputStream is = this.getClass().getResourceAsStream(fontFileName);
Font ttfBase = Font.createFont(Font.TRUETYPE_FONT, is);
Font ttfReal = ttfBase.deriveFont(Font.PLAIN, 24);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X