Style de police

Résolu/Fermé
Oliv - Modifié le 27 août 2020 à 21:23
 Oliv - 28 août 2020 à 13:54
Bonjour,

je me demande si il est possible de définir une police dans un autre style que ceux (appremment) disponible via le constructeur de
Font
.
Sauf erreur, il n' y a rien à part:
Font.PLAIN
Font.BOLD
Font.ITALIC

et la combinaison des deux derniers.
Or, la police que je souhaiterais utiliser (et de très nombreuses autres) ont bien plus de styles:
Light, SemiLight, SemiBold, Condensed, SemiCondensed...

Existe-t-il un moyen de s'en servir en Java ?
Par ex:
new Font("Bahnschrift SemiCondensed", Font.SEMIBOLD, 16)


Parce que même en mettant une constante qui existe (
Font.BOLD
), le JRE13 ne comprend pas non plus le nom de la police et affiche la police par défaut.

La police "Bahnschrift" est bien installée sur mon ordi dans les Fonts de Windows, mais...
Toutes ses sous-variantes sont apparemment des polices "logiques" et rangées dans la famille "Dialog".
Je ne peux donc faire que :
new Font("Bahnschrift", Font.PLAIN, 16)

new Font("Bahnschrift", Font.ITALIC, 16)

new Font("Bahnschrift", Font.BOLD, 16)

new Font("Bahnschrift", Font.BOLD | Font.ITALIC, 16)

quand c'est l'un des onze (11) autres styles de cette police que je veux (et que PAINT.exe délivre sans soucis)

Configuration: Windows / Chrome 79.0.3945.117
A voir également:

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
28 août 2020 à 09:54
Bonjour,

La classe Font a un constructeur Font(Map<? extends AttributedCharacterIterator.Attribute,​?> attributes) avec lequel tu peux manipuler les TextAttribute qui font exactement ce que tu veux (et plus encore).

Exemple :
Font font = new Font(Map.of(
                TextAttribute.FAMILY, "Bahnschrift",
                TextAttribute.WIDTH, TextAttribute.WIDTH_SEMI_CONDENSED,
                TextAttribute.WEIGHT, TextAttribute.WEIGHT_SEMIBOLD,
                TextAttribute.SIZE, 16));
1
Yeeeeeees ! Merci !!!
Je me doutais bien que c'était par là... Si c'était ; mais impossible de comprendre comment construire ça.
Aaah, ça fait plaisir. Bonne journée !
0