Class Fonts
TODO: Consider changing the visibility of the package private methods to public. As an alternative we may provide a FontPolicy that can emulate the font choice on Windows XP/2000 and Windows Vista for different software resolutions (96dpi/120dpi) and desktop font size settings (Normal/Large/Extra Large).
- Since:
- 2.0
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static boolean
canDisplayLocalizedDisplayLanguage
(Font font, Locale locale) Checks and answers if the given font can display the locale's localized display language, for example "English" for English, "Deutsch" for German, etc.static Boolean
canDisplayLocalizedText
(Font font, Locale locale) Checks and answers whether the given font can display text that is localized for the specified locale.private static Font
Looks up and returns the Windows defaultGUI font.private static Font
getDesktopFont
(String fontName) Looks up and returns a font using the default toolkit's desktop properties.static Font
Looks up and returns the Windows control font.private static boolean
Checks and answers whether the locale's display language is available in a localized form, for example "Deutsch" for the German locale.
-
Field Details
-
WINDOWS_DEFAULT_GUI_FONT_KEY
The desktop property key used to lookup the DEFAULTGUI font. This font scales with the software resolution only but works in western and non-western Windows environments.- See Also:
-
WINDOWS_ICON_FONT_KEY
The desktop property key used to lookup Windows' icon font. This font scales with the software resolution and the desktop font size setting (Normal/Large/Extra Large). However, in some non-western Windows environments this font cannot display the locale's glyphs.Implementation Note: Windows uses the icon font to label icons in the Windows Explorer and other places. It seems to me that this works in non-western environments due to font chaining.
- See Also:
-
-
Constructor Details
-
Fonts
private Fonts()
-
-
Method Details
-
getWindowsControlFont
Looks up and returns the Windows control font. Returns the Windows icon title font unless it is inappropriate for the Windows version, Java renderer, or locale.The icon title font scales with the resolution (96dpi, 101dpi, 120dpi, etc) and the desktop font size settings (normal, large, extra large). Older versions may return a poor font. Also, since Java 1.4 and Java 5 render the Windows Vista icon font Segoe UI poorly, we return the default GUI font in these environments.
The last check is, if the icon font can display text in the default locale. Therefore we test if the locale's localized display name can be displayed by the icon font. For example, Tahoma can display "English", "Deutsch", but not the display name for "Chinese" in Chinese.
- Returns:
- the Windows control font
- Throws:
UnsupportedOperationException
- on non-Windows platforms
-
getDefaultGUIFont
Looks up and returns the Windows defaultGUI font. Works around a bug with Java 1.4.2_11, 1.5.0_07, and 1.6 b89 in the Vista Beta2, where the win.defaultGUI.font desktop property returns null. In this case a logical "Dialog" font is used as fallback.- Returns:
- the Windows defaultGUI font, or a dialog font as fallback.
-
canDisplayLocalizedText
Checks and answers whether the given font can display text that is localized for the specified locale. Returnsnull
if we can't test it.First checks, if the locale's display language is available in localized form, for example "Deutsch" for the German locale. If so, we check if the given font can display the localized display language.
Otherwise we check some known combinations of fonts and locales and return the associated results. For all other combinations,
null
is returned to indicate that we don't know whether the font can display text in the given locale.- Parameters:
font
- the font to be testedlocale
- the locale to be used- Returns:
Boolean.TRUE
if the font can display the locale's text,Boolean.FALSE
if not,null
if we don't know- Since:
- 2.0.4
-
canDisplayLocalizedDisplayLanguage
Checks and answers if the given font can display the locale's localized display language, for example "English" for English, "Deutsch" for German, etc. The test invokesFont#canDisplayUpTo
on the localized display language. In a Chinese locale this test will check if the font can display Chinese glyphs.- Parameters:
font
- the font to be testedlocale
- the locale to be used- Returns:
- true if the font can display the locale's localized display language, false otherwise
-
localeHasLocalizedDisplayLanguage
Checks and answers whether the locale's display language is available in a localized form, for example "Deutsch" for the German locale.- Parameters:
locale
- the Locale to test- Returns:
- true if the display language is localized, false if not
-
getDesktopFont
Looks up and returns a font using the default toolkit's desktop properties.- Parameters:
fontName
- the name of the font to return- Returns:
- the font
-