# Class Screen

java.lang.Object
javafx.stage.Screen

public final class Screen extends Object
Describes the characteristics of a graphics destination such as monitor. In a virtual device multi-screen environment in which the desktop area could span multiple physical screen devices, the bounds of the `Screen` objects are relative to the `Screen.primary`.

For example:

    Rectangle2D primaryScreenBounds = Screen.getPrimary().getVisualBounds();

    //set Stage boundaries to visible bounds of the main screen
    stage.setX(primaryScreenBounds.getMinX());
    stage.setY(primaryScreenBounds.getMinY());
    stage.setWidth(primaryScreenBounds.getWidth());
    stage.setHeight(primaryScreenBounds.getHeight());

    stage.show();

Since:
  JavaFX 2.0

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `final Rectangle2D`
  `getBounds()`
  Gets the bounds of this `Screen`.
  `final double`
  `getDpi()`
  Gets the resolution (dots per inch) of this `Screen`.
  `final double`
  `getOutputScaleX()`
  Gets the recommended output scale factor of this `Screen` in the horizontal (`X`) direction.
  `final double`
  `getOutputScaleY()`
  Gets the recommended output scale factor of this `Screen` in the vertical (`Y`) direction.
  `static Screen`
  `getPrimary()`
  The primary `Screen`.
  `static ObservableList<Screen>`
  `getScreens()`
  The observable list of currently available `Screens`.
  `static ObservableList<Screen>`
  `getScreensForRectangle(double x, double y, double width, double height)`
  Returns a ObservableList of `Screens` that intersects the provided rectangle.
  `static ObservableList<Screen>`
  `getScreensForRectangle(Rectangle2D r)`
  Returns a ObservableList of `Screens` that intersects the provided rectangle.
  `final Rectangle2D`
  `getVisualBounds()`
  Gets the visual bounds of this `Screen`.
  `int`
  `hashCode()`
  Returns a hash code for this `Screen` object.
  `String`
  `toString()`
  Returns a string representation of this `Screen` object.

  ### Methods declared in class Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Method Details

  - ### getPrimary

    public static Screen getPrimary()
    The primary `Screen`.
    Returns:
      the primary screen

  - ### getScreens

    public static ObservableList<Screen> getScreens()
    The observable list of currently available `Screens`.
    Returns:
      observable list of currently available screens

  - ### getScreensForRectangle

    public static ObservableList<Screen> getScreensForRectangle(double x, double y, double width, double height)
    Returns a ObservableList of `Screens` that intersects the provided rectangle.
    Parameters:
      `x` - the x coordinate of the upper-left corner of the specified rectangular area
      `y` - the y coordinate of the upper-left corner of the specified rectangular area
      `width` - the width of the specified rectangular area
      `height` - the height of the specified rectangular area
    Returns:
      a ObservableList of `Screens` for which `Screen.bounds` intersects the provided rectangle

  - ### getScreensForRectangle

    public static ObservableList<Screen> getScreensForRectangle(Rectangle2D r)
    Returns a ObservableList of `Screens` that intersects the provided rectangle.
    Parameters:
      `r` - The specified `Rectangle2D`
    Returns:
      a ObservableList of `Screens` for which `Screen.bounds` intersects the provided rectangle

  - ### getBounds

    public final Rectangle2D getBounds()
    Gets the bounds of this `Screen`. The bounds will be reported adjusted for the `outputScale` so that resizing a `Window` with these bounds and the same `outputScale` as this `Screen` will cover the entire screen.
    Returns:
      The bounds of this `Screen`

  - ### getVisualBounds

    public final Rectangle2D getVisualBounds()
    Gets the visual bounds of this `Screen`. These bounds account for objects in the native windowing system such as task bars and menu bars. These bounds are contained by `Screen.bounds`.
    Returns:
      The visual bounds of this `Screen`

  - ### getDpi

    public final double getDpi()
    Gets the resolution (dots per inch) of this `Screen`.
    Returns:
      The resolution of this `Screen`

  - ### getOutputScaleX

    public final double getOutputScaleX()
    Gets the recommended output scale factor of this `Screen` in the horizontal (`X`) direction. This scale factor should be applied to a scene in order to compensate for the resolution and viewing distance of the output device. The visual bounds will be reported relative to this scale factor.
    Returns:
      the recommended output scale factor for the screen.
    Since:
      9

  - ### getOutputScaleY

    public final double getOutputScaleY()
    Gets the recommended output scale factor of this `Screen` in the vertical (`Y`) direction. This scale factor will be applied to the scene in order to compensate for the resolution and viewing distance of the output device. The visual bounds will be reported relative to this scale factor.
    Returns:
      the recommended output scale factor for the screen.
    Since:
      9

  - ### hashCode

    public int hashCode()
    Returns a hash code for this `Screen` object.
    Overrides:
      `hashCode` in class `Object`
    Returns:
      a hash code for this `Screen` object.

  - ### equals

    public boolean equals(Object obj)
    Indicates whether some other object is "equal to" this one.
    Overrides:
      `equals` in class `Object`
    Parameters:
      `obj` - the reference object with which to compare.
    Returns:
      `true` if this object is equal to the `obj` argument; `false` otherwise.

  - ### toString

    public String toString()
    Returns a string representation of this `Screen` object.
    Overrides:
      `toString` in class `Object`
    Returns:
      a string representation of this `Screen` object.