Comment trouver, avec Java, si une police est installée correctement sur une machine

StackOverflow https://stackoverflow.com/questions/2270360

  •  20-09-2019
  •  | 
  •  

Question

J'ai un ordinateur portable PC exécutant Windows Vista, quand j'acheté, certaines polices de caractères chinois ne seront pas visibles, je ne pouvais voir que des rectangles, mais je joue avec la commande de réglage pendant un certain temps, a changé certaines propriétés, et maintenant il montre correctement les polices de caractères chinois, mais je ne me souviens pas ce que je faisais.

Aujourd'hui, certains de mes programmes affiche anglais et en chinois, quelque chose comme ceci: « Entrez | 输入 » (Les Chinois ici signifie aussi entrer), mais si un utilisateur ne dispose pas de polices chinoises installées correctement sur sa machine, il voir quelque chose comme ceci: « Enter | [] [] », ma question est: en Java comment détecter si ces personnages apparaissent correctement sur une certaine machine, sinon, afficher uniquement « Enter », si elle est, spectacle " Entrez |. 输入 »

Frank

Était-ce utile?

La solution

java.awt.GraphicsEnvironment.getAvailableFontFamilyNames() peut vous donner une liste des polices disponibles installées sur le système actuel. Vous pouvez également utiliser java.awt.GraphicsEnvironment.getAllFonts() pour obtenir des objets java.awt.Font.

Ensuite, vous pouvez utiliser java.awt.Font.canDisplay(int) pour vérifier si un caractère Unicode peut être affiché dans cette police (où la int est la représentation entière du caractère multi-octets).

Autres conseils

Version Lazy:

Arrays.asList(GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames()).contains(FONT_NAME)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top