Comment utiliser Helvetica en Java?


Helvetica est disponible sous une forme ou une autre sous Windows, Mac OS X et Linux. Sous Windows, je peux le voir à partir de Microsoft Word. Sur les deux plates-formes UNIX, je peux le trouver avec xlsfonts | grep-i helvetica; le nom semble être adobe-helvetica.

Mais le JDK ne le trouve pas! Il n'est pas répertorié dans GraphicsEnvironment.getAllFonts (), il ne vient pas quand j'appelle new Font ("Helvetica",...) [en utilisant plusieurs variantes de nom, soit, comme "Adobe Helvetica"]; à la place, je reçois par défaut à Police "Dialog" et il semble la nommer avec le nom que j'ai utilisé.

Cette police est disponible sur toutes les plates-formes cibles Java pertinentes aujourd'hui. Comment puis-je l'utiliser depuis Java?

Author: skiphoppy, 2008-12-17

6 answers

Je me rends compte que cela ne répond pas réellement à la question, mais...

Sous Windows, Helvetica n'est pas toujours installé. Ma machine au travail (celle que j'utilise maintenant) ne le fait pas, malgré Microsoft Office XP.

 2
Author: Powerlord, 2008-12-17 18:48:40
Font f = new Font("Helvetica", Font.PLAIN, 10);  // make a new font object

ObjectName.setFont(f); // set the objects font using setFont();

Où "Helvetica" est la police, Police.PLAIN définit le style, et 10 définit la taille. Bien sûr, il doit être installé pour fonctionner, et vous pouvez le regrouper en utilisant CreateFont().

Essayez l'API Java pour les polices pour plus de référence.

 3
Author: John T, 2008-12-17 19:06:32

L'installation de polices TrueType est généralement assez simple. J'utilise maven pour mon projet, donc je garde simplement le fichier de police dans mon répertoire de ressources et je le récupère à l'aide d'un chargeur de classe.

InputStream is = MyClass.class.getClassLoader().getResourceAsStream("my/package/Avenir.ttf");
Font f = Font.createFont(Font.TRUETYPE_FONT, is);
is.close();

Cette police doit être chargée en mémoire pour être utilisée ailleurs dans l'application en utilisant le nom de la police. Vous pouvez vous assurer que cela a fonctionné et voir quelles polices sont disponibles sur votre système en utilisant le code ci-dessous.

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fontNames = ge.getAvailableFontFamilyNames();

for(String name : fontNames)
    System.out.println(name);
 2
Author: Zack, 2009-03-30 17:43:13

Sous Linux, il y a une police.fichier de propriétés quelque part dans le répertoire jre ou jdk auquel vous êtes censé pouvoir ajouter de nouvelles polices, mais j'ai essayé un bazillion de choses différentes pour y ajouter des polices, même celles qui sont connues du système d'exploitation et apparaissent dans xlsfonts, et je ne l'ai jamais fait fonctionner.

 1
Author: Paul Tomblin, 2008-12-17 19:32:36

Bien sûr, les seules polices garanties avec Java sont les fronts Lucida (Bright, Sans et Typewriter). Selon l'installation et la configuration de Java, il peut être capable de lire le recto à partir du répertoire de polices de votre machine, mais ce n'est pas garanti.

S'il doit s'agir d'Helvetica, vous pouvez regrouper la police avec la police.CreateFont (), en passant un int représentant le type (Font.En GRAS, ou de la Police.PLAIN, etc.), et un InputStream à la police TrueType.

 0
Author: Matt Poush, 2008-12-17 18:56:47

Je pense que si vous mettez le fichier de police dans votre dossier src et que vous l'appelez à partir de là, cela fonctionnera.

 -1
Author: nunolourenco, 2008-12-17 18:59:39