GraphicsConfigTemplate (Java SE 26 & JDK 26)
Description: declaration: module: java.desktop, package: java.awt, class: GraphicsConfigTemplate
Keywords: java.awt.GraphicsConfigTemplate class

# Class GraphicsConfigTemplate

java.lang.Object
java.awt.GraphicsConfigTemplate

All Implemented Interfaces:
  `Serializable`

public abstract class GraphicsConfigTemplate extends Object implements Serializable
The `GraphicsConfigTemplate` class is used to obtain a valid `GraphicsConfiguration`. A user instantiates one of these objects and then sets all non-default attributes as desired. The `GraphicsDevice.getBestConfiguration(GraphicsConfigTemplate)` method found in the `GraphicsDevice` class is then called with this `GraphicsConfigTemplate`. A valid `GraphicsConfiguration` is returned that meets or exceeds what was requested in the `GraphicsConfigTemplate`.

Since:
  1.2
See Also:
  - `GraphicsDevice`
  - `GraphicsConfiguration`
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `PREFERRED`
  Value used for "Enum" (Integer) type.
  `static final int`
  `REQUIRED`
  Value used for "Enum" (Integer) type.
  `static final int`
  `UNNECESSARY`
  Value used for "Enum" (Integer) type.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `GraphicsConfigTemplate()`
  This class is an abstract class so only subclasses can be instantiated.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract GraphicsConfiguration`
  `getBestConfiguration(GraphicsConfiguration[] gc)`
  Returns the "best" configuration possible that passes the criteria defined in the `GraphicsConfigTemplate`.
  `abstract boolean`
  `isGraphicsConfigSupported(GraphicsConfiguration gc)`
  Returns a `boolean` indicating whether or not the specified `GraphicsConfiguration` can be used to create a drawing surface that supports the indicated features.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Field Details

  - ### REQUIRED

    public static final int REQUIRED
    Value used for "Enum" (Integer) type. States that this feature is required for the `GraphicsConfiguration` object. If this feature is not available, do not select the `GraphicsConfiguration` object.
    See Also:
      - Constant Field Values

  - ### PREFERRED

    public static final int PREFERRED
    Value used for "Enum" (Integer) type. States that this feature is desired for the `GraphicsConfiguration` object. A selection with this feature is preferred over a selection that does not include this feature, although both selections can be considered valid matches.
    See Also:
      - Constant Field Values

  - ### UNNECESSARY

    public static final int UNNECESSARY
    Value used for "Enum" (Integer) type. States that this feature is not necessary for the selection of the `GraphicsConfiguration` object. A selection without this feature is preferred over a selection that includes this feature since it is not used.
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### GraphicsConfigTemplate

    public GraphicsConfigTemplate()
    This class is an abstract class so only subclasses can be instantiated.

- ## Method Details

  - ### getBestConfiguration

    public abstract GraphicsConfiguration getBestConfiguration(GraphicsConfiguration[] gc)
    Returns the "best" configuration possible that passes the criteria defined in the `GraphicsConfigTemplate`.
    Parameters:
      `gc` - the array of `GraphicsConfiguration` objects to choose from.
    Returns:
      a `GraphicsConfiguration` object that is the best configuration possible.
    See Also:
      - `GraphicsConfiguration`

  - ### isGraphicsConfigSupported

    public abstract boolean isGraphicsConfigSupported(GraphicsConfiguration gc)
    Returns a `boolean` indicating whether or not the specified `GraphicsConfiguration` can be used to create a drawing surface that supports the indicated features.
    Parameters:
      `gc` - the `GraphicsConfiguration` object to test
    Returns:
      `true` if this `GraphicsConfiguration` object can be used to create surfaces that support the indicated features; `false` if the `GraphicsConfiguration` can not be used to create a drawing surface usable by this Java(tm) API.