FileDocCategorySizeDatePackage
TTFontDemo.javaAPI DocExample2005Sat Mar 13 19:40:52 GMT 2004None

TTFontDemo

public class TTFontDemo extends JLabel
Demo of making TrueType font usable in Java. This is a way cool facility because it means you can have "application-specific" fonts in Java; your application can have its own distinctive font that the user does NOT have to install into the JRE before you can use it. (of course they can install it if they have privileges and want to).

Must remain Swing-based despite problems on older systems, since apparently only Swing components can use TTF fonts in this implementation.

Did NOT work for me in Applet nor JApplet due to security problems (requires to create a temp file). Could be made to work by providing a policy file.

author
Ian Darwin
since
1.3

Fields Summary
Constructors Summary
public TTFontDemo(String fontFileName, String text)
Construct a TTFontDemo -- Create a Font from TTF.

		super(text, JLabel.CENTER);

		setBackground(Color.white);

		// First, see if we can load the font file.
		InputStream is = this.getClass().getResourceAsStream(fontFileName);
		if (is == null) {
			throw new IOException("Cannot open " + fontFileName);
		}

		// createFont makes a 1-point font, bit hard to read :-)
		Font ttfBase = Font.createFont(Font.TRUETYPE_FONT, is);

		// So scale it to 24 pt.
		Font ttfReal = ttfBase.deriveFont(Font.PLAIN, 24);

		setFont(ttfReal);
	
Methods Summary
public static voidmain(java.lang.String[] args)
Simple main program for TTFontDemo


		String DEFAULT_MESSAGE = 
			"What hath man wrought? Or at least rendered?";
		String DEFAULT_FONTFILE =
			"Kellyag_.ttf";
		String message = args.length == 1 ? args[0] : DEFAULT_MESSAGE;
		JFrame f = new JFrame("TrueType Font Demo");

		TTFontDemo ttfd = new TTFontDemo(DEFAULT_FONTFILE, message);
		f.getContentPane().add(ttfd);

		f.setBounds(100, 100, 700, 250);
		f.setVisible(true);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);