Java Graphics.getFontMetrics(Font f)
Syntax
Graphics.getFontMetrics(Font f) has the following syntax.
public abstract FontMetrics getFontMetrics(Font f)
Example
In the following code shows how to use Graphics.getFontMetrics(Font f) method.
//from w w w .j a v a 2 s.c o m
import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Main extends JPanel {
public void paint(Graphics g) {
int fontSize = 20;
Font font = new Font("TimesRoman", Font.PLAIN, fontSize);
g.setFont(font);
FontMetrics fm = g.getFontMetrics(font);
String s = "www.java2s.com";
int stringWidth = fm.stringWidth(s);
int w = 200;
int h = 200;
int x = (w - stringWidth) / 2;
int baseline = fm.getMaxAscent() +
(h - (fm.getAscent() + fm.getMaxDecent()))/2;
int ascent = fm.getMaxAscent();
int descent = fm.getMaxDecent();
int fontHeight = fm.getMaxAscent() + fm.getMaxDecent();
g.setColor(Color.white);
g.fillRect(x, baseline-ascent , stringWidth, fontHeight);
g.setColor(Color.gray);
g.drawLine(x, baseline, x+stringWidth, baseline);
g.setColor(Color.red);
g.drawLine(x, baseline+descent, x+stringWidth, baseline+descent);
g.setColor(Color.blue);
g.drawLine(x, baseline-ascent,
x+stringWidth, baseline-ascent);
g.setColor(Color.black);
g.drawString(s, x, baseline);
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.add(new Main());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(20,20, 500,500);
frame.setVisible(true);
}
}
Home »
Java Tutorial »
java.awt »
Java Tutorial »
java.awt »