Wie kann man die genauen Abmessungen eines Schriftzuges ermitteln?

Die Abmessungen eines Schriftzuges lassen sich mit Hilfe der Klasse java.awt.font.TextLayout ermitteln.

Nach dem Erzeugen eines String-Objektes wird im Beispiel zunächst ein Objekt vom Typ Font erstellt, das die Schriftfamilie, deren -Stil und -Größe definiert. Dann wird ein FontRenderContext erzeugt, der hier neu gebildet wird, aber bei grafischen Anwendungen üblicherweise mittels Graphics2d#getFontRenderContext() aus dem Grafikkontext der darstellenden Komponente ermittelt wird.
Mit Hilfe des FontRenderContext, des Font-Objektes und des auszumessenden Strings wird ein TextLayout-Objekt erzeugt, dessen Methode getBounds() ein Rechteck liefert, das exakt den äußeren Abmessungen des Schriftzuges entspricht.

import java.awt.Font;
import java.awt.font.FontRenderContext;
import java.awt.font.TextLayout;
import java.awt.geom.Rectangle2D;

public class SchriftMass {

    public static void main(String[] args) {
        String s = "Dies ist ein vollständiger Satz.";
        Font font = new Font("Verdana", Font.BOLD, 16);
        FontRenderContext con = new FontRenderContext(font.getTransform(), false, false);
        TextLayout layout = new TextLayout(s, font, con);
        Rectangle2D rect = layout.getBounds();
        System.out.println("x: " + rect.getX());
        System.out.println("y: " + rect.getY());
        System.out.println("Breite: " + rect.getWidth());
        System.out.println("H\u00F6he: " + rect.getHeight());
    }
}

Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.