1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
/* * @(#)DisplayMode.java 1.11 06/07/31 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package java.awt; /** * The <code>DisplayMode</code> class encapsulates the bit depth, height, * width, and refresh rate of a <code>GraphicsDevice</code>. The ability to * change graphics device's display mode is platform- and * configuration-dependent and may not always be available * (see {@link GraphicsDevice#isDisplayChangeSupported}). * <p> * For more information on full-screen exclusive mode API, see the * <a href="http://java.sun.com/docs/books/tutorial/extra/fullscreen/index.html"> * Full-Screen Exclusive Mode API Tutorial</a>. * * @see GraphicsDevice * @see GraphicsDevice#isDisplayChangeSupported * @see GraphicsDevice#getDisplayModes * @see GraphicsDevice#setDisplayMode * @author Michael Martak * @since 1.4 */ public final class DisplayMode { private Dimension size; private int bitDepth; private int refreshRate; /** * Create a new display mode object with the supplied parameters. * @param width the width of the display, in pixels * @param height the height of the display, in pixels * @param bitDepth the bit depth of the display, in bits per * pixel. This can be <code>BIT_DEPTH_MULTI</code> if multiple * bit depths are available. * @param refreshRate the refresh rate of the display, in hertz. * This can be <code>REFRESH_RATE_UNKNOWN</code> if the * information is not available. * @see #BIT_DEPTH_MULTI * @see #REFRESH_RATE_UNKNOWN */ public DisplayMode(int width, int height, int bitDepth, int refreshRate) { this.size = new Dimension(width, height); this.bitDepth = bitDepth; this.refreshRate = refreshRate; } /** * Returns the height of the display, in pixels. * @return the height of the display, in pixels */ public int getHeight() { return size.height; } /** * Returns the width of the display, in pixels. * @return the width of the display, in pixels */ public int getWidth() { return size.width; } /** * Value of the bit depth if multiple bit depths are supported in this * display mode. * @see #getBitDepth */ public final static int BIT_DEPTH_MULTI = -1; /** * Returns the bit depth of the display, in bits per pixel. This may be * <code>BIT_DEPTH_MULTI</code> if multiple bit depths are supported in * this display mode. * * @return the bit depth of the display, in bits per pixel. * @see #BIT_DEPTH_MULTI */ public int getBitDepth() { return bitDepth; } /** * Value of the refresh rate if not known. * @see #getRefreshRate */ public final static int REFRESH_RATE_UNKNOWN = 0; /** * Returns the refresh rate of the display, in hertz. This may be * <code>REFRESH_RATE_UNKNOWN</code> if the information is not available. * * @return the refresh rate of the display, in hertz. * @see #REFRESH_RATE_UNKNOWN */ public int getRefreshRate() { return refreshRate; } /** * Returns whether the two display modes are equal. * @return whether the two display modes are equal */ public boolean equals(DisplayMode dm) { if (dm == null) { return false; } return (getHeight() == dm.getHeight() && getWidth() == dm.getWidth() && getBitDepth() == dm.getBitDepth() && getRefreshRate() == dm.getRefreshRate()); } /** * {@inheritDoc} */ public boolean equals(Object dm) { if (dm instanceof DisplayMode) { return equals((DisplayMode)dm); } else { return false; } } /** * {@inheritDoc} */ public int hashCode() { return getWidth() + getHeight() + getBitDepth() * 7 + getRefreshRate() * 13; } }