Verwenden von setFont in Java
-
Verwenden von
setFont()
zum Festlegen einer neuen Schriftart in JFrame -
Verwenden von
setFont()
undgetFont().deriveFont()
zum Festlegen eines Stils in der vorhandenen Schriftart -
Verwenden von
setFont()
undFont.createFont()
zum Festlegen einer benutzerdefinierten Schriftart
In diesem Artikel erfahren wir, wie wir die von java.awt.Container
geerbte Methode setFont()
in der Klasse javax.swing.JFrame
verwenden können. Wie der Name schon sagt, setzt diese Funktion die Schriftart auf die Komponenten von JFrame
.
Verwenden von setFont()
zum Festlegen einer neuen Schriftart in JFrame
In diesem Beispiel setzen wir einen neuen Font auf eine JFrame
-Komponente.
Zuerst erstellen wir ein JFrame
-Objekt und zwei Labels vom Typ JLabel
. Wir initialisieren die Labels mit ihrem Text.
Jetzt erstellen wir ein Font
-Objekt namens myFont1
und übergeben im Konstruktor drei Argumente, erstens die Schriftart, die wir setzen möchten, zweitens die Schriftart, die mit der Klasse Font
aufgerufen werden kann, und die letztes Argument ist die Schriftgröße, die ein Wert vom Typ int
ist.
Wir erstellen ein weiteres Font
-Objekt, myFont2
, und übergeben ihm einen anderen Font-Wert. Wir rufen die Funktion setFont()
mit den JLabel
-Objekten auf und übergeben ihnen die Font
-Objekte.
Danach legen wir mit der Funktion setBounds()
Position und Grösse der Komponenten fest und fügen sie mit add()
zum JFrame
hinzu. Zuletzt legen wir die Größe und Sichtbarkeit des JFrame
fest.
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);
}
}
Ausgabe:
Verwenden von setFont()
und getFont().deriveFont()
zum Festlegen eines Stils in der vorhandenen Schriftart
Im vorherigen Beispiel haben wir gesehen, wie man mit setFont()
eine neue Schriftart setzen kann, aber wir können mit dieser Methode auch einen neuen Stil für die bestehende Schriftart der Komponente JFrame
setzen.
Um dies zu erreichen, rufen wir zuerst die Schriftart der Komponente mit component.getFont()
ab und rufen die Funktion deriveFont()
auf, die den gewünschten Stil akzeptiert. Wir übergeben Font.ITALIC
, um die Schrift auf JLabel
kursiv zu machen.
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);
}
}
Ausgabe:
Verwenden von setFont()
und Font.createFont()
zum Festlegen einer benutzerdefinierten Schriftart
In diesem Beispiel legen wir eine benutzerdefinierte Schriftart fest, im Gegensatz zum ersten Programm, bei dem wir die Schriftart bereits in der Klasse festgelegt haben.
Um die benutzerdefinierte Schriftart zu erhalten, laden wir sie herunter und speichern sie im Stammverzeichnis unseres Projektverzeichnisses. In diesem Beispiel verwenden wir die Schriftdatei oswald.ttf
.
Wir erstellen ein JLabel
und initialisieren es, um die Font-Datei zu erhalten, die wir BufferedInputStream
nennen, und übergeben ein Objekt von FileInputStream
, das den Pfad der Font-Datei als Argument verwendet. Jetzt erhalten wir ein Objekt von InputStream
.
Um einen neuen Font zu erstellen, rufen wir createFont()
aus der Font
-Klasse auf und übergeben den Font-Ressourcentyp als erstes Argument und den InputStream
als zweites Argument. Wir setzen die benutzerdefinierte Schriftart auf die Komponente JLabel
mit der Methode deriveFont()
.
Nach all dem fügen wir nun die Komponente zum JFrame
hinzu. Die Ausgabe zeigt die benutzerdefinierte Schriftart.
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);
}
}
Ausgabe:
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedInVerwandter Artikel - Java Swing
- Java Paint-Komponente
- Verwendung von SwingUtilities.invokeLater() in Java
- Erstellen von Leinwänden mit Java Swing
- Java-Klartextfeld
- Ändern den JLabel-Text in Java Swing
- Java Swing Datum