Bonjour à tous.
Je travaille actuellement sur une application Java qui est structurée comme ceci :
- Un serveur d'application JBoss 4.0.1 linké à un DB MySQL 5.1
- Une application cliente GUI, lancée via Java web start
Pour les besoins du client, nous devons faire en sorte de prendre en charge tous les alphabets possibles (cyrillique, arabe, chinois, coréen, etc...)
Bref, côté serveur & BD, j'ai rajouté ceci :
Et côté MySQL, dans le fichier de config j'ai fait en sorte de prendre en compte l'utf8.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <prop key="hibernate.connection.url">jdbc:mysql://${db.host.name}:${db.host.port}/${db.replication.name}?autoReconnect=true&useUnicode=true&characterEncoding=utf8&characterResultSets=utf8</prop> <prop key="hibernate.jndi.url">jdbc:mysql://${db.host.name}:${db.host.port}/${db.replication.name}?autoReconnect=true&useUnicode=true&characterEncoding=utf8&characterResultSets=utf8</prop>
Donc jusque là, tout va bien.
Maintenant, l'affichage des données côté client...
La police de base de l'application cliente est capable d'afficher des caractères cyrilliques, par contre quand j'essaye d'afficher des caractères coréens (dans un TextField tout bête), ben j'ai de jolis petits carrés.
Bref, je me suis dit que c'était un problème de police, et j'ai donc fait ceci au lancement de mon appli cliente :
Ce petit bout de code change la police et avec cette police je peux afficher des caractères coréens, chinois, mais pas arabe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 UIDefaults def = UIManager.getDefaults(); def.put("TextArea.font", new Font("Batang", Font.PLAIN, 14)); def.put("Label.font", new Font("Batang", Font.PLAIN, 14)); java.util.Enumeration keys = UIManager.getDefaults().keys(); while (keys.hasMoreElements()) { Object key = keys.nextElement(); Object value = UIManager.get(key); if (value instanceof javax.swing.plaf.FontUIResource) UIManager.put(key, new Font("Batang", Font.PLAIN, 14)); }
Bref mes questions :
- Est ce bien propre/conseillé de changer la police d'une application comme ceci? Y'a-t-il une manière de faire plus propre?
- Y'a t-il une police capable d'afficher TOUS les caractères de TOUS les alphabets possibles? Ou bien, vais je devoir configurer un truc pour pouvoir changer la police dynamiquement??
De plus, actuellement, le java utilisé est le Java 1.4.2_03, mais nous passons en ce moment en Java 6.0, en Java 6.0, la gestion des polices de caractères est elle mieux gérée?
D'avance merci pour vos remarques/conseils/critiques !
Partager