< prev index next >
src/java.desktop/share/classes/java/awt/GraphicsEnvironment.java
Print this page
*** 37,56 ****
import sun.java2d.SunGraphicsEnvironment;
import sun.security.action.GetPropertyAction;
/**
*
! * The <code>GraphicsEnvironment</code> class describes the collection
* of {@link GraphicsDevice} objects and {@link java.awt.Font} objects
* available to a Java(tm) application on a particular platform.
! * The resources in this <code>GraphicsEnvironment</code> might be local
! * or on a remote machine. <code>GraphicsDevice</code> objects can be
* screens, printers or image buffers and are the destination of
! * {@link Graphics2D} drawing methods. Each <code>GraphicsDevice</code>
* has a number of {@link GraphicsConfiguration} objects associated with
* it. These objects specify the different configurations in which the
! * <code>GraphicsDevice</code> can be used.
* @see GraphicsDevice
* @see GraphicsConfiguration
*/
public abstract class GraphicsEnvironment {
--- 37,56 ----
import sun.java2d.SunGraphicsEnvironment;
import sun.security.action.GetPropertyAction;
/**
*
! * The {@code GraphicsEnvironment} class describes the collection
* of {@link GraphicsDevice} objects and {@link java.awt.Font} objects
* available to a Java(tm) application on a particular platform.
! * The resources in this {@code GraphicsEnvironment} might be local
! * or on a remote machine. {@code GraphicsDevice} objects can be
* screens, printers or image buffers and are the destination of
! * {@link Graphics2D} drawing methods. Each {@code GraphicsDevice}
* has a number of {@link GraphicsConfiguration} objects associated with
* it. These objects specify the different configurations in which the
! * {@code GraphicsDevice} can be used.
* @see GraphicsDevice
* @see GraphicsConfiguration
*/
public abstract class GraphicsEnvironment {
*** 72,83 ****
*/
protected GraphicsEnvironment() {
}
/**
! * Returns the local <code>GraphicsEnvironment</code>.
! * @return the local <code>GraphicsEnvironment</code>
*/
public static synchronized GraphicsEnvironment getLocalGraphicsEnvironment() {
if (localEnv == null) {
localEnv = createGE();
}
--- 72,83 ----
*/
protected GraphicsEnvironment() {
}
/**
! * Returns the local {@code GraphicsEnvironment}.
! * @return the local {@code GraphicsEnvironment}
*/
public static synchronized GraphicsEnvironment getLocalGraphicsEnvironment() {
if (localEnv == null) {
localEnv = createGE();
}
*** 130,141 ****
* 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 <code>true</code> if this environment cannot support
! * a display, keyboard, and mouse; <code>false</code>
* otherwise
* @see java.awt.HeadlessException
* @since 1.4
*/
public static boolean isHeadless() {
--- 130,141 ----
* 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 {@code true} if this environment cannot support
! * a display, keyboard, and mouse; {@code false}
* otherwise
* @see java.awt.HeadlessException
* @since 1.4
*/
public static boolean isHeadless() {
*** 207,221 ****
}
/**
* Returns whether or not a display, keyboard, and mouse can be
* supported in this graphics environment. If this returns true,
! * <code>HeadlessException</code> will be thrown from areas of the
* graphics environment that are dependent on a display, keyboard, or
* mouse.
! * @return <code>true</code> if a display, keyboard, and mouse
! * can be supported in this environment; <code>false</code>
* otherwise
* @see java.awt.HeadlessException
* @see #isHeadless
* @since 1.4
*/
--- 207,221 ----
}
/**
* Returns whether or not a display, keyboard, and mouse can be
* supported in this graphics environment. If this returns true,
! * {@code HeadlessException} will be thrown from areas of the
* graphics environment that are dependent on a display, keyboard, or
* mouse.
! * @return {@code true} if a display, keyboard, and mouse
! * can be supported in this environment; {@code false}
* otherwise
* @see java.awt.HeadlessException
* @see #isHeadless
* @since 1.4
*/
*** 224,303 ****
// headless property.
return getHeadlessProperty();
}
/**
! * Returns an array of all of the screen <code>GraphicsDevice</code>
* objects.
! * @return an array containing all the <code>GraphicsDevice</code>
* objects that represent screen devices
* @exception HeadlessException if isHeadless() returns true
* @see #isHeadless()
*/
public abstract GraphicsDevice[] getScreenDevices()
throws HeadlessException;
/**
! * Returns the default screen <code>GraphicsDevice</code>.
! * @return the <code>GraphicsDevice</code> that represents the
* default screen device
* @exception HeadlessException if isHeadless() returns true
* @see #isHeadless()
*/
public abstract GraphicsDevice getDefaultScreenDevice()
throws HeadlessException;
/**
! * Returns a <code>Graphics2D</code> object for rendering into the
* specified {@link BufferedImage}.
! * @param img the specified <code>BufferedImage</code>
! * @return a <code>Graphics2D</code> to be used for rendering into
! * the specified <code>BufferedImage</code>
! * @throws NullPointerException if <code>img</code> is null
*/
public abstract Graphics2D createGraphics(BufferedImage img);
/**
* Returns an array containing a one-point size instance of all fonts
! * available in this <code>GraphicsEnvironment</code>. 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 <code>deriveFont</code> method on the chosen instance.
* <p>
* This method provides for the application the most precise control
! * over which <code>Font</code> instance is used to render text.
! * If a font in this <code>GraphicsEnvironment</code> has multiple
* programmable variations, only one
! * instance of that <code>Font</code> is returned in the array, and
* other variations must be derived by the application.
* <p>
* 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 <code>Font</code> array. The other variations
* must be derived by the application.
*
! * @return an array of <code>Font</code> objects
* @see #getAvailableFontFamilyNames
* @see java.awt.Font
* @see java.awt.Font#deriveFont
* @see java.awt.Font#getFontName
* @since 1.2
*/
public abstract Font[] getAllFonts();
/**
* Returns an array containing the names of all font families in this
! * <code>GraphicsEnvironment</code> localized for the default locale,
! * as returned by <code>Locale.getDefault()</code>.
* <p>
* 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.
*
! * @return an array of <code>String</code> containing font family names
* localized for the default locale, or a suitable alternative
* name if no name exists for this locale.
* @see #getAllFonts
* @see java.awt.Font
* @see java.awt.Font#getFamily
--- 224,303 ----
// headless property.
return getHeadlessProperty();
}
/**
! * Returns an array of all of the screen {@code GraphicsDevice}
* objects.
! * @return an array containing all the {@code GraphicsDevice}
* objects that represent screen devices
* @exception HeadlessException if isHeadless() returns true
* @see #isHeadless()
*/
public abstract GraphicsDevice[] getScreenDevices()
throws HeadlessException;
/**
! * Returns the default screen {@code GraphicsDevice}.
! * @return the {@code GraphicsDevice} that represents the
* default screen device
* @exception HeadlessException if isHeadless() returns true
* @see #isHeadless()
*/
public abstract GraphicsDevice getDefaultScreenDevice()
throws HeadlessException;
/**
! * Returns a {@code Graphics2D} object for rendering into the
* specified {@link BufferedImage}.
! * @param img the specified {@code BufferedImage}
! * @return a {@code Graphics2D} to be used for rendering into
! * the specified {@code BufferedImage}
! * @throws NullPointerException if {@code img} is null
*/
public abstract Graphics2D createGraphics(BufferedImage img);
/**
* Returns an array containing a one-point size instance of all fonts
! * available in this {@code 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 {@code deriveFont} method on the chosen instance.
* <p>
* This method provides for the application the most precise control
! * over which {@code Font} instance is used to render text.
! * If a font in this {@code GraphicsEnvironment} has multiple
* programmable variations, only one
! * instance of that {@code Font} is returned in the array, and
* other variations must be derived by the application.
* <p>
* 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 {@code Font} array. The other variations
* must be derived by the application.
*
! * @return an array of {@code Font} objects
* @see #getAvailableFontFamilyNames
* @see java.awt.Font
* @see java.awt.Font#deriveFont
* @see java.awt.Font#getFontName
* @since 1.2
*/
public abstract Font[] getAllFonts();
/**
* Returns an array containing the names of all font families in this
! * {@code GraphicsEnvironment} localized for the default locale,
! * as returned by {@code Locale.getDefault()}.
* <p>
* 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.
*
! * @return an array of {@code String} containing font family names
* localized for the default locale, or a suitable alternative
* name if no name exists for this locale.
* @see #getAllFonts
* @see java.awt.Font
* @see java.awt.Font#getFamily
*** 305,367 ****
*/
public abstract String[] getAvailableFontFamilyNames();
/**
* Returns an array containing the names of all font families in this
! * <code>GraphicsEnvironment</code> localized for the specified locale.
* <p>
* 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.
*
* @param l a {@link Locale} object that represents a
* particular geographical, political, or cultural region.
! * Specifying <code>null</code> is equivalent to
! * specifying <code>Locale.getDefault()</code>.
! * @return an array of <code>String</code> containing font family names
! * localized for the specified <code>Locale</code>, or a
* suitable alternative name if no name exists for the specified locale.
* @see #getAllFonts
* @see java.awt.Font
* @see java.awt.Font#getFamily
* @since 1.2
*/
public abstract String[] getAvailableFontFamilyNames(Locale l);
/**
! * Registers a <i>created</i> <code>Font</code>in this
! * <code>GraphicsEnvironment</code>.
* 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 <code>Font</code>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.
* <p>
* Reasons that this method might not register the font and therefore
! * return <code>false</code> are:
* <ul>
! * <li>The font is not a <i>created</i> <code>Font</code>.
! * <li>The font conflicts with a non-created <code>Font</code> already
! * in this <code>GraphicsEnvironment</code>. 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.
* <p>Notice that an application can supersede the registration
* of an earlier created font with a new one.
* </ul>
*
* @param font the font to be registered
! * @return true if the <code>font</code> is successfully
! * registered in this <code>GraphicsEnvironment</code>.
! * @throws NullPointerException if <code>font</code> is null
* @since 1.6
*/
public boolean registerFont(Font font) {
if (font == null) {
throw new NullPointerException("font cannot be null.");
--- 305,367 ----
*/
public abstract String[] getAvailableFontFamilyNames();
/**
* Returns an array containing the names of all font families in this
! * {@code GraphicsEnvironment} localized for the specified locale.
* <p>
* 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.
*
* @param l a {@link Locale} object that represents a
* particular geographical, political, or cultural region.
! * Specifying {@code null} is equivalent to
! * specifying {@code Locale.getDefault()}.
! * @return an array of {@code String} containing font family names
! * localized for the specified {@code Locale}, or a
* suitable alternative name if no name exists for the specified locale.
* @see #getAllFonts
* @see java.awt.Font
* @see java.awt.Font#getFamily
* @since 1.2
*/
public abstract String[] getAvailableFontFamilyNames(Locale l);
/**
! * Registers a <i>created</i> {@code Font} in this
! * {@code 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 {@code 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.
* <p>
* Reasons that this method might not register the font and therefore
! * return {@code false} are:
* <ul>
! * <li>The font is not a <i>created</i> {@code Font}.
! * <li>The font conflicts with a non-created {@code Font} already
! * in this {@code 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.
* <p>Notice that an application can supersede the registration
* of an earlier created font with a new one.
* </ul>
*
* @param font the font to be registered
! * @return true if the {@code font} is successfully
! * registered in this {@code GraphicsEnvironment}.
! * @throws NullPointerException if {@code font} is null
* @since 1.6
*/
public boolean registerFont(Font font) {
if (font == null) {
throw new NullPointerException("font cannot be null.");
*** 442,453 ****
* 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.
* <p>
* To get the usable bounds of a single display, use
! * <code>GraphicsConfiguration.getBounds()</code> and
! * <code>Toolkit.getScreenInsets()</code>.
* @return the maximum bounds for centered Windows
*
* @exception HeadlessException if isHeadless() returns true
* @see #getCenterPoint
* @see GraphicsConfiguration#getBounds
--- 442,453 ----
* 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.
* <p>
* To get the usable bounds of a single display, use
! * {@code GraphicsConfiguration.getBounds()} and
! * {@code Toolkit.getScreenInsets()}.
* @return the maximum bounds for centered Windows
*
* @exception HeadlessException if isHeadless() returns true
* @see #getCenterPoint
* @see GraphicsConfiguration#getBounds
< prev index next >