Author: rwhitcomb Date: Thu Sep 2 19:09:48 2021 New Revision: 1892828 URL: http://svn.apache.org/viewvc?rev=1892828&view=rev Log: Add two new methods to FontUtilities to register a new font for use, either from a file or an input stream.
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/FontUtilities.java Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/FontUtilities.java URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/FontUtilities.java?rev=1892828&r1=1892827&r2=1892828&view=diff ============================================================================== --- pivot/trunk/wtk/src/org/apache/pivot/wtk/FontUtilities.java (original) +++ pivot/trunk/wtk/src/org/apache/pivot/wtk/FontUtilities.java Thu Sep 2 19:09:48 2021 @@ -17,6 +17,11 @@ package org.apache.pivot.wtk; import java.awt.Font; +import java.awt.FontFormatException; +import java.awt.GraphicsEnvironment; +import java.io.File; +import java.io.InputStream; +import java.io.IOException; import java.util.Locale; import org.apache.pivot.collections.Dictionary; @@ -352,5 +357,53 @@ public final class FontUtilities { } } + /** + * Install a new font for use by this program (only). + * + * @param fullFontFilePath The complete path (on disk) to the local font file + * (must be a TrueType font in this case). + * @return The newly created / registered font if successful, <code>null</code> otherwise. + * @throws IOException if there was a problem reading the font from the file. + * @throws FontFormatException if the font file itself was malformed. + */ + public static Font registerFont(final File fullFontFilePath) + throws IOException, FontFormatException + { + try { + GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); + Font f = Font.createFont(Font.TRUETYPE_FONT, fullFontFilePath); + if (ge.registerFont(f)) { + return f; + } + return null; + } catch (IOException | FontFormatException ex) { + throw ex; + } + } + + /** + * Install a new font for use by this program (only). + * + * @param fontInputStream The stream of bytes describing this font + * (must be a TrueType font in this case). Also note that the + * caller is responsible for closing this input stream. + * @return The newly created / registered font if successful, <code>null</code> otherwise. + * @throws IOException if there was a problem reading the font from the file. + * @throws FontFormatException if the font file itself was malformed. + */ + public static Font registerFont(final InputStream fontInputStream) + throws IOException, FontFormatException + { + try { + GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); + Font f = Font.createFont(Font.TRUETYPE_FONT, fontInputStream); + if (ge.registerFont(f)) { + return f; + } + return null; + } catch (IOException | FontFormatException ex) { + throw ex; + } + } }