Login | Register   
RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.

Tip of the Day
Language: Visual Basic
Expertise: Intermediate
Mar 6, 2000



Application Security Testing: An Integral Part of DevOps

Font Metrics

Font properties that affect the rendering of strings are represented by the FontMetrics class. You can determine the FontMetrics of the current font in a graphics context with Graphics.getFontMetrics(). If all you want to know is the estimated width of a string in pixels, FontMetrics provides a stringWidth() method for just this purpose. However, a more general method is also provided, called getStringBounds(). This method will return a Rectangle2D instance representing the bounding box of a string when drawn in the given Font. The following program shows how to use this information to draw a rectangle around a string:
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;

public class AWTStringSize extends Frame {
  private String __string;

  public void paint(Graphics g) {
    FontMetrics metrics = g.getFontMetrics();
    Rectangle2D rect;
    int x, y;

    // Get dimensions of string
    rect = metrics.getStringBounds(__string, g);

    x = (getWidth() - (int)rect.getWidth())/2;
    y = (getHeight() - (int)rect.getHeight())/2;

    g.drawString(__string, x, y);

    // Draw a box slightly outside of the bounds of the string
    g.drawRect(x - 1, y - (int)rect.getHeight() - 1,
               (int)rect.getWidth() + 2,
               (int)rect.getHeight() + 2);

  public AWTStringSize(String string) {
    __string = string;

  public static final void main(String[] args) {
    AWTStringSize frame;

    if(args.length != 1) {
      System.err.println("Usage: AWTStringSize string");

    frame = new AWTStringSize(args[0]);

    frame.addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        Window window = e.getWindow();

    frame.setSize(400, 400);
Daniel Savarese
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



We have made updates to our Privacy Policy to reflect the implementation of the General Data Protection Regulation.
Thanks for your registration, follow us on our social networks to keep up-to-date