Methods Summary |
---|
static void | checkHeadless()Check for headless state and throw HeadlessException if headless
if (isHeadless()) {
throw new HeadlessException();
}
|
public abstract java.awt.Graphics2D | createGraphics(java.awt.image.BufferedImage img)Returns a Graphics2D object for rendering into the
specified {@link BufferedImage}.
|
public abstract java.awt.Font[] | getAllFonts()Returns an array containing a one-point size instance of all fonts
available in this GraphicsEnvironment . Typical usage
would be to allow a user to select a particular font. Then, the
application can size the font and set various font attributes by
calling the deriveFont method on the choosen instance.
This method provides for the application the most precise control
over which Font instance is used to render text.
If a font in this GraphicsEnvironment has multiple
programmable variations, only one
instance of that Font is returned in the array, and
other variations must be derived by the application.
If a font in this environment has multiple programmable variations,
such as Multiple-Master fonts, only one instance of that font is
returned in the Font array. The other variations
must be derived by the application.
|
public abstract java.lang.String[] | getAvailableFontFamilyNames()Returns an array containing the names of all font families in this
GraphicsEnvironment localized for the default locale,
as returned by Locale.getDefault() .
Typical usage would be for presentation to a user for selection of
a particular family name. An application can then specify this name
when creating a font, in conjunction with a style, such as bold or
italic, giving the font system flexibility in choosing its own best
match among multiple fonts in the same font family.
|
public abstract java.lang.String[] | getAvailableFontFamilyNames(java.util.Locale l)Returns an array containing the names of all font families in this
GraphicsEnvironment localized for the specified locale.
Typical usage would be for presentation to a user for selection of
a particular family name. An application can then specify this name
when creating a font, in conjunction with a style, such as bold or
italic, giving the font system flexibility in choosing its own best
match among multiple fonts in the same font family.
|
public java.awt.Point | getCenterPoint()Returns the Point where Windows should be centered.
It is recommended that centered Windows be checked to ensure they fit
within the available display area using getMaximumWindowBounds().
// Default implementation: return the center of the usable bounds of the
// default screen device.
Rectangle usableBounds =
SunGraphicsEnvironment.getUsableBounds(getDefaultScreenDevice());
return new Point((usableBounds.width / 2) + usableBounds.x,
(usableBounds.height / 2) + usableBounds.y);
|
public abstract java.awt.GraphicsDevice | getDefaultScreenDevice()Returns the default screen GraphicsDevice .
|
static java.lang.String | getHeadlessMessage()
if (headless == null) {
getHeadlessProperty(); // initialize the values
}
return defaultHeadless != Boolean.TRUE ? null :
"\nNo X11 DISPLAY variable was set, " +
"but this program performed an operation which requires it.";
|
private static boolean | getHeadlessProperty()
if (headless == null) {
java.security.AccessController.doPrivileged(
new java.security.PrivilegedAction() {
public Object run() {
String nm = System.getProperty("java.awt.headless");
if (nm == null) {
/* No need to ask for DISPLAY when run in a browser */
if (System.getProperty("javaplugin.version") != null) {
headless = defaultHeadless = Boolean.FALSE;
} else {
String osName = System.getProperty("os.name");
headless = defaultHeadless =
Boolean.valueOf(("Linux".equals(osName) || "SunOS".equals(osName)) &&
(System.getenv("DISPLAY") == null));
}
} else if (nm.equals("true")) {
headless = Boolean.TRUE;
} else {
headless = Boolean.FALSE;
}
return null;
}
}
);
}
return headless.booleanValue();
|
public static synchronized java.awt.GraphicsEnvironment | getLocalGraphicsEnvironment()Returns the local GraphicsEnvironment .
if (localEnv == null) {
String nm = (String) java.security.AccessController.doPrivileged
(new sun.security.action.GetPropertyAction
("java.awt.graphicsenv", null));
try {
// long t0 = System.currentTimeMillis();
localEnv =
(GraphicsEnvironment) Class.forName(nm).newInstance();
// long t1 = System.currentTimeMillis();
// System.out.println("GE creation took " + (t1-t0)+ "ms.");
if (isHeadless()) {
localEnv = new HeadlessGraphicsEnvironment(localEnv);
}
} catch (ClassNotFoundException e) {
throw new Error("Could not find class: "+nm);
} catch (InstantiationException e) {
throw new Error("Could not instantiate Graphics Environment: "
+ nm);
} catch (IllegalAccessException e) {
throw new Error ("Could not access Graphics Environment: "
+ nm);
}
}
return localEnv;
|
public java.awt.Rectangle | getMaximumWindowBounds()Returns the maximum bounds for centered Windows.
These bounds account for objects in the native windowing system such as
task bars and menu bars. The returned bounds will reside on a single
display with one exception: on multi-screen systems where Windows should
be centered across all displays, this method returns the bounds of the
entire display area.
To get the usable bounds of a single display, use
GraphicsConfiguration.getBounds() and
Toolkit.getScreenInsets() .
// Default implementation: return the usable bounds of the default screen
// device. This is correct for Microsoft Windows and non-Xinerama X11.
return SunGraphicsEnvironment.getUsableBounds(getDefaultScreenDevice());
|
public abstract java.awt.GraphicsDevice[] | getScreenDevices()Returns an array of all of the screen GraphicsDevice
objects.
|
public static boolean | isHeadless()Tests whether or not a display, keyboard, and mouse can be
supported in this environment. If this method returns true,
a HeadlessException is thrown from areas of the Toolkit
and GraphicsEnvironment that are dependent on a display,
keyboard, or mouse.
return getHeadlessProperty();
|
public boolean | isHeadlessInstance()Returns whether or not a display, keyboard, and mouse can be
supported in this graphics environment. If this returns true,
HeadlessException will be thrown from areas of the
graphics environment that are dependent on a display, keyboard, or
mouse.
// By default (local graphics environment), simply check the
// headless property.
return getHeadlessProperty();
|
public void | preferLocaleFonts()Indicates a preference for locale-specific fonts in the mapping of
logical fonts to physical fonts. Calling this method indicates that font
rendering should primarily use fonts specific to the primary writing
system (the one indicated by the default encoding and the initial
default locale). For example, if the primary writing system is
Japanese, then characters should be rendered using a Japanese font
if possible, and other fonts should only be used for characters for
which the Japanese font doesn't have glyphs.
The actual change in font rendering behavior resulting from a call
to this method is implementation dependent; it may have no effect at
all, or the requested behavior may already match the default behavior.
The behavior may differ between font rendering in lightweight
and peered components. Since calling this method requests a
different font, clients should expect different metrics, and may need
to recalculate window sizes and layout. Therefore this method should
be called before user interface initialisation.
sun.font.FontManager.preferLocaleFonts();
|
public void | preferProportionalFonts()Indicates a preference for proportional over non-proportional (e.g.
dual-spaced CJK fonts) fonts in the mapping of logical fonts to
physical fonts. If the default mapping contains fonts for which
proportional and non-proportional variants exist, then calling
this method indicates the mapping should use a proportional variant.
The actual change in font rendering behavior resulting from a call to
this method is implementation dependent; it may have no effect at all.
The behavior may differ between font rendering in lightweight and
peered components. Since calling this method requests a
different font, clients should expect different metrics, and may need
to recalculate window sizes and layout. Therefore this method should
be called before user interface initialisation.
sun.font.FontManager.preferProportionalFonts();
|
public boolean | registerFont(java.awt.Font font)Registers a /created Font in this
GraphicsEnvironment .
A created font is one that was returned from calling
{@link Font#createFont}, or derived from a created font by
calling {@link Font#deriveFont}.
After calling this method for such a font, it is available to
be used in constructing new Font s by name or family name,
and is enumerated by {@link #getAvailableFontFamilyNames} and
{@link #getAllFonts} within the execution context of this
application or applet. This means applets cannot register fonts in
a way that they are visible to other applets.
Reasons that this method might not register the font and therefore
return false are :
- The font is not a /created
Font .
- The font conflicts with a non-created
Font already
in this GraphicsEnvironment . For example if the name
is that of a system font, or a logical font as described in the
documentation of the {@link Font} class. It is implementation dependent
whether a font may also conflict if it has the same family name
as a system font. The exception for created fonts means that an
application can supersede the registration
of an earlier created font with a new one.
if (font == null) {
throw new NullPointerException("font cannot be null.");
}
return sun.font.FontManager.registerFont(font);
|