web-dev-qa-db-fra.com

Font.createFont (..) définit la couleur et la taille (Java.awt.Font)

J'aimerais créer un nouvel objet Font à l'aide d'un fichier TTF. C'est vraiment simple de créer un objet Font mais je ne sais pas comment définir la couleur et la taille car je ne trouve pas de méthode pour cela

InputStream is = new FileInputStream("helvetica.ttf");
Font helvetica = Font.createFont(Font.TRUETYPE_FONT, is);
17
konze

Les polices n'ont pas de couleur; lorsque vous utilisez la police, vous pouvez définir la couleur du composant. Par exemple, lorsque vous utilisez un JTextArea:

JTextArea txt = new JTextArea();
Font font = new Font("Verdana", Font.BOLD, 12);
txt.setFont(font);
txt.setForeground(Color.BLUE);

Selon ce lien , la méthode createFont () crée un nouvel objet Font avec une taille de points de 1 et le style PLAIN. Ainsi, si vous souhaitez augmenter la taille de la police, procédez comme suit:

 Font font = Font.createFont(Font.TRUETYPE_FONT, new File("A.ttf"));
 return font.deriveFont(12f);
21
Erik Pragt

Une fois que vous avez votre police, vous pouvez invoquer deriveFont. Par exemple,

helvetica = helvetica.deriveFont(Font.BOLD, 12f);

Change le style de la police en gras et sa taille en 12 points. 

5
Zong

Comme la police n'a pas de couleur, vous avez besoin d'un panneau pour créer une couleur d'arrière-plan et définir la couleur de premier plan pour JLabel (si vous utilisez JLabel) et JPanel pour créer une couleur de police, comme dans l'exemple ci-dessous:

JLabel lblusr = new JLabel("User name : ");
lblusr.setForeground(Color.YELLOW);

JPanel usrPanel = new JPanel();
Color maroon = new Color (128, 0, 0);
usrPanel.setBackground(maroon);
usrPanel.setOpaque(true);
usrPanel.setForeground(Color.YELLOW);
usrPanel.add(lblusr);

La couleur de fond de l'étiquette est marron avec une couleur de police jaune.

0
xxx