Get font ascent, descent, height, leading in Java
Description
The following code shows how to get font ascent, descent, height, leading.
Example
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
//from w w w .j av a2 s . co m
import javax.swing.JComponent;
import javax.swing.JFrame;
class MyCanvas extends JComponent {
public void paint(Graphics g) {
g.setFont(new Font("SansSerif", Font.BOLD, 12));
FontMetrics fm = g.getFontMetrics();
g.drawString("Current font: " + g.getFont(), 10, 40);
g.drawString("Ascent: " + fm.getAscent(), 10, 55);
g.drawString("Descent: " + fm.getDescent(), 10, 70);
g.drawString("Height: " + fm.getHeight(), 10, 85);
g.drawString("Leading: " + fm.getLeading(), 10, 100);
Font font = new Font("Serif", Font.ITALIC, 14);
fm = g.getFontMetrics(font);
g.setFont(font);
g.drawString("Current font: " + font, 10, 130);
g.drawString("Ascent: " + fm.getAscent(), 10, 145);
g.drawString("Descent: " + fm.getDescent(), 10, 160);
g.drawString("Height: " + fm.getHeight(), 10, 175);
g.drawString("Leading: " + fm.getLeading(), 10, 190);
}
}
public class Main {
public static void main(String[] a) {
JFrame window = new JFrame();
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setBounds(30, 30, 450, 450);
window.getContentPane().add(new MyCanvas());
window.setVisible(true);
}
}
The code above generates the following result.