Verwenden von setFont in Java

Rupam Yadav 12 Oktober 2023
  1. Verwenden von setFont() zum Festlegen einer neuen Schriftart in JFrame
  2. Verwenden von setFont() und getFont().deriveFont() zum Festlegen eines Stils in der vorhandenen Schriftart
  3. Verwenden von setFont() und Font.createFont() zum Festlegen einer benutzerdefinierten Schriftart
Verwenden von setFont in Java

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:

Java setFont

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:

Java setFont

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:

Java setFont

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

Verwandter Artikel - Java Swing

Verwandter Artikel - Java JLabel