Introduction
L'antialiasing concerne 2 catégories différentes : les dessins et le texte. Pour le paramétrer, on utilise dans les 2 cas la fonction setRenderingHint
de la classe Graphics2D
, mais les paramètres et les valeurs à positionner sont différents.
Les dessins
Pour les dessins (les traits, les cercles, etc…), il vaut mieux toujours activer l'antialiasing sur le Graphics2D
qui est fournit dans la fonction paintComponent(Graphics g)
:
((Graphics2D) g).setRenderingHint( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON );
Le texte
Activer l'antialising ou pas pour le texte dépend de la plate-forme et de la fonte. Je vous conseille de ne pas changer les fontes que Java à définit pour votre interface graphique. Il vaut mieux ne pas activer systématique l'antialiasing, mais obéir aux paramètres définis par le système d'exploitation. Pour obtenir ces paramètres, je vous suggère d'obtenir ces paramètres dans le constructeur de votre classe (qui dérive probablement de JPanel
) l'information et de la stocker dans une variable.
Map renderingHints = (Map)Toolkit.getDefaultToolkit() .getDesktopProperty("awt.font.desktophints");
Ensuite, il faut utiliser cette information dans paintComponent(Graphics g)
:
((Graphics2D)g).setRenderingHints(renderingHints);
Remarque
Il faut bien positionner les paramètres d'antialiasing à chaque appel de la fonction paintComponent(Graphics g)
, parce qu'il n'est jamais garanti que l'objet Graphics
que vous recevez en argument de la fonction est le même d'un appel à l'autre