Utiliser setFont en Java
-
Utilisation de
setFont()
pour définir une nouvelle police dans JFrame -
Utilisation de
setFont()
etgetFont().deriveFont()
pour définir un style dans la police existante -
Utilisation de
setFont()
etFont.createFont()
pour définir une police personnalisée
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 :
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 :
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 :
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedInArticle connexe - Java Swing
- Champ de texte en clair Java
- Créer un canevas à l'aide de Java Swing
- Centrer un JLabel dans Swing
- Java Swing Date
- Modifier le texte JLabel dans Java Swing
- Ajouter ActionListener à JButton en Java