Last updated 2004-06-28 by Roedy
Green ©1996-2004 Canadian Mind Products
Java definitions: 0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
You are here : home : Java Glossary : F words : FontMetrics.
For measuring height, FontMetrics is quite crude. FontMetrics. getAscent, getHeight and getDescent are only approximate, and include a of lot of white space. getHeight even includes the suggested leading to the next line.
For more accurate, you need LineMetrics with takes a sample string of text and a FontRenderingContext. Even it so, it still include a lot of white space. I don't know if there is a way to get totally tight bounding box around some text, without rolling your own pixel based methods. LineMetrics is awkward to use. If you are inside a paintComponent method, you can cast the Graphics object to a Graphics2D. Otherwise you must create a dummy Graphics2D context like this:
... BufferedImage bufferedImage = new BufferedImage ( 2 /* dummy */, 2 /* dummy */, BufferedImage.TYPE_4BYTE_ABGR_PRE ); Graphics2D g2d = ( Graphics2D) (bufferedImage.createGraphics()); FontRenderContext fr = g2d.getFontRenderContext(); LineMetrics lm = font.getLineMetrics( sampleText, fr ); float ascent = lm.getAscent(); float descent = lm.getDescent(); float height = lm.getHeight();
home |
Canadian Mind Products | |||
| mindprod.com IP:[24.87.56.253] | ||||
| Your IP:[80.134.30.163] | ||||
| You are visitor number 1071. | ||||
| Please send errors, omissions and suggestions | ||||
| to improve this page to Roedy Green. | ||||
| You can get a fresh copy of this page from: | or possibly from your local J: drive mirror: | |||
| http://mindprod.com/jgloss/fontmetrics.html | J:\mindprod\jgloss\fontmetrics.html | |||