java.awt.font letter spacing

user1031054 picture user1031054 · Nov 5, 2012 · Viewed 8.2k times · Source

Is it possible to increase letter spacing when using java.awt.font ? Something like this:

Font font = new Font("serif", Font.PLAIN, 21);
//Increase the spacing - perhaps with deriveFont()?

BufferedImage image = new BufferedImage(400, 600, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = image.createGraphics();
graphics.setFont(font);
graphics.drawString("testing",0,0);

Answer

Gijs Overvliet picture Gijs Overvliet · Nov 5, 2012

You can derive a new font, with an updated tracking attribute:

Map<TextAttribute, Object> attributes = new HashMap<TextAttribute, Object>();
attributes.put(TextAttribute.TRACKING, 0.5);
Font font2 = font.deriveFont(attributes);
gr.setFont(font2);
gr.drawString("testing",0,20);