2008-12-17 5 views
3

J'utilise une bibliothèque tierce qui accède aux polices via l'appel de GraphicsEnvironment: getAllFonts(). Cela inclut les polices dans les registres de polices appartenant à la fois au JRE et au système d'exploitation.Comment puis-je rendre des fichiers de polices arbitraires disponibles pour Java?

Mais sur les machines clientes qui se connectent à notre serveur je ne sera probablement pas en mesure d'installer des polices dans l'un de ces endroits. Alors, comment puis-je mettre d'autres polices à la disposition du JRE afin que cet appel les prenne en charge? Existe-t-il un moyen d'étendre son chemin de recherche?

je peux accéder à une police à partir d'un fichier arbitraire avec l'appel Font.createFont(). Mais alors il n'apparaît toujours pas dans GraphicsEnvironment.getAllFonts(). Y at-il une méthode que je peux transmettre cette police à qui l'ajoutera à la liste des polices disponibles? Je lis qu'il y a des appels qui accèdent aux polices à partir d'une propriété système, mais je ne comprends pas encore, et je pense que cela traduit juste une propriété de police que j'ai définie dans un nom de police de la liste disponible.


asalamon a fourni la bonne réponse, mais je suis coincé sur une version antérieure de Java qui ne le supporte pas, au moins jusqu'à l'année prochaine. Donc plus de réponses sont toujours les bienvenues! Je vais probablement essayer d'utiliser la réflexion pour pirater la bibliothèque que nous utilisons et insérer des polices directement dans son cache.

Répondre

2

Utilisez GraphicsEnvironment.registerFont. (Pour JDK 1.6)

+0

Génial. C'est la bonne réponse à ce problème. Sauf que je suis coincé sur Java 1.5, et nous ne pouvons pas mettre à niveau jusqu'à l'année prochaine quand nous réglerons quelques problèmes avec notre logiciel avec 1.6! Mais merci! – skiphoppy

1

Essayez Font.createFont() et regrouper les polices que vous souhaitez utiliser.

+0

Eh bien, qui a aidé un peu, mais apparemment je suis toujours coincé à devoir obtenir la police résultante dans l'appel getAllFonts() en quelque sorte, pour la bibliothèque tiers que nous utilisons. – skiphoppy

Questions connexes