Utiliser setFont en Java

Rupam Yadav 12 octobre 2023
  1. Utilisation de setFont() pour définir une nouvelle police dans JFrame
  2. Utilisation de setFont() et getFont().deriveFont() pour définir un style dans la police existante
  3. Utilisation de setFont() et Font.createFont() pour définir une police personnalisée
Utiliser setFont en Java

Dans cet article, nous allons apprendre comment utiliser la méthode setFont() héritée de java.awt.Container dans la classe javax.swing.JFrame. Comme son nom l’indique, cette fonction définit la police sur les composants de JFrame.

Utilisation de setFont() pour définir une nouvelle police dans JFrame

Dans cet exemple, nous définissons une nouvelle police pour un composant JFrame.

Tout d’abord, nous créons un objet JFrame et deux labels de type JLabel. On initialise les étiquettes avec leur texte.

Maintenant, nous créons un objet Font appelé myFont1, et dans le constructeur, nous passons trois arguments, le premier est la police que nous voulons définir, le second est le style de police qui peut être appelé à l’aide de la classe Font, et le le dernier argument est la taille de la police qui est une valeur de type int.

Nous créons un autre objet Font, myFont2, et lui passons une valeur de police différente. Nous appelons la fonction setFont() à l’aide des objets JLabel et leur passons les objets Font.

Après cela, nous définissons la position et la taille des composants à l’aide de la fonction setBounds() et les ajoutons au JFrame à l’aide de add(). Enfin, nous définissons la taille et la visibilité du JFrame.

import java.awt.*;
import javax.swing.*;

public class Main {
  public static void main(String[] args) {
    JFrame jFrame = new JFrame("Set Font Example");
    JLabel jLabel1, jLabel2;

    jLabel1 = new JLabel("Label with Serif Font");
    jLabel2 = new JLabel("Label with Arial Font");

    Font myFont1 = new Font("Serif", Font.BOLD, 12);
    jLabel1.setFont(myFont1);

    Font myFont2 = new Font("Arial", Font.BOLD, 12);
    jLabel2.setFont(myFont2);

    jLabel1.setBounds(80, 100, 120, 30);
    jLabel2.setBounds(80, 80, 120, 30);

    jFrame.add(jLabel1);
    jFrame.add(jLabel2);
    jFrame.setSize(300, 300);

    jFrame.setLayout(null);
    jFrame.setVisible(true);
  }
}

Production :

Java setFont

Utilisation de setFont() et getFont().deriveFont() pour définir un style dans la police existante

Dans l’exemple précédent, nous avons vu comment setFont() peut être utilisé pour définir une nouvelle police, mais nous pouvons également utiliser cette méthode pour définir un nouveau style pour la police existante du composant JFrame.

Pour ce faire, nous récupérons d’abord la police du composant à l’aide du component.getFont() et appelons la fonction deriveFont() qui accepte le style que nous voulons appliquer. On passe Font.ITALIC pour rendre la fonte sur le JLabel Italique.

import java.awt.*;
import javax.swing.*;

public class Main {
  public static void main(String[] args) {
    JFrame f = new JFrame("Set Font Example");
    JLabel jLabel1;

    jLabel1 = new JLabel("Label with Italic Style");

    jLabel1.setFont(jLabel1.getFont().deriveFont(Font.ITALIC));
    jLabel1.setBounds(80, 100, 120, 30);

    f.add(jLabel1);
    f.setSize(300, 300);

    f.setLayout(null);
    f.setVisible(true);
  }
}

Production :

Java setFont

Utilisation de setFont() et Font.createFont() pour définir une police personnalisée

Dans cet exemple, nous avons défini une police personnalisée, contrairement au premier programme où nous avons déjà défini la police dans la classe.

Pour obtenir la police personnalisée, nous la téléchargeons et la stockons à la racine de notre répertoire de projet. Nous utilisons le fichier de police oswald.ttf dans cet exemple.

Nous créons un JLabel et l’initialisons pour obtenir le fichier de police que nous appelons BufferedInputStream et passons un objet de FileInputStream qui prend le chemin du fichier de police comme argument. Nous obtenons maintenant un objet de InputStream.

Pour créer une nouvelle police, nous appelons createFont() de la classe Font et passons le type de ressource de police comme premier argument et InputStream comme deuxième argument. Nous définissons la police personnalisée sur le composant JLabel en utilisant la méthode deriveFont().

Après tout cela, nous ajoutons maintenant le composant au JFrame. La sortie affiche la police personnalisée.

package sample;

import java.awt.*;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.swing.*;

public class Main {
  public static void main(String[] args) {
    JFrame f = new JFrame("Set Font Example");
    JLabel jLabel;

    jLabel = new JLabel("Label with a Custom Font");

    try {
      InputStream inputStream = new BufferedInputStream(new FileInputStream("oswald.ttf"));

      Font font = Font.createFont(Font.TRUETYPE_FONT, inputStream);

      jLabel.setFont(font.deriveFont(Font.BOLD, 12f));

    } catch (FontFormatException | IOException e) {
      e.printStackTrace();
    }

    jLabel.setBounds(80, 100, 120, 30);

    f.add(jLabel);
    f.setSize(300, 300);

    f.setLayout(null);
    f.setVisible(true);
  }
}

Production :

Java setFont

Auteur: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Article connexe - Java Swing

Article connexe - Java JLabel