2009-08-05 11 views
0

J'ai du code Swing (écrit en 1.6 pour 1.6) qui définit spécifiquement la police dans une zone de texte à Courier, mais sur certains systèmes Windows, cela apparaît comme Arial (le système par défaut?) À la place. Cela signifie-t-il qu'une police est manquante dans le système? Quel est le comportement de Java lorsqu'il ne trouve pas la police recherchée? Est-ce qu'il se plaint? Est-ce qu'il se connecte quelque part? Est-ce qu'il utilise immédiatement le système par défaut? Le comportement est-il différent entre les versions 1.4/1.5/1.6 de la JVM?Les polices par défaut en Java

Est-ce que quelqu'un d'autre a déjà rencontré ce problème? J'ai été très surpris d'avoir quelque chose de différent de ce que j'ai HARDCODED dans l'application apparaît dans l'interface utilisateur - et seulement sur certains systèmes. Le problème principal est que j'ai besoin d'un style de police monospace pour ce cas particulier, et Arial n'est pas monospace. Existe-t-il un moyen de spécifier une solution de repli si une certaine police n'est pas trouvée? Quelque chose comme:

si la police est disponible, utilisez "Courier" utiliser autre "mono-espace"

???

Répondre

1

Vous devez d'abord vérifier si « Courier » est parmi les résultats de GraphicsEnvironment.getAvailableFontFamilyNames()

Je ne connais aucun mécanisme intégré en Java pour le comportement « if-unavailable-fallback-to ».

+1

Je serais vraiment surpris si Courier manquait sur n'importe quel système Windows. –

0

Selon cet article 1, les seules polices TrueType à espacement fixe fournies par Microsoft sont Courier New et Lucida Sans Typewriter.

Questions connexes