Spec-Zone.ru › OpenJDK 27

Класс GraphicsDevice

java.lang.Object
java.awt.GraphicsDevice
public abstract class GraphicsDevice extends Object
Класс GraphicsDevice описывает графические устройства, которые могут быть доступны в конкретной графической среде. К ним относятся устройства отображения и принтеры. Обратите внимание, что в экземпляре GraphicsEnvironment может быть несколько устройств отображения и принтеров. С каждым графическим устройством связан один или несколько объектов GraphicsConfiguration. Эти объекты определяют различные конфигурации, в которых можно использовать GraphicsDevice.

В среде с несколькими экранами объекты GraphicsConfiguration можно использовать для отображения компонентов на нескольких экранах. В следующем примере кода показано, как создать объект JFrame для каждого GraphicsConfiguration на каждом устройстве отображения в GraphicsEnvironment:

  GraphicsEnvironment ge = GraphicsEnvironment.
  getLocalGraphicsEnvironment();
  GraphicsDevice[] gs = ge.getScreenDevices();
  for (int j = 0; j < gs.length; j++) {
     GraphicsDevice gd = gs[j];
     GraphicsConfiguration[] gc =
     gd.getConfigurations();
     for (int i=0; i < gc.length; i++) {
        JFrame f = new
        JFrame(gs[j].getDefaultConfiguration());
        Canvas c = new Canvas(gc[i]);
        Rectangle gcBounds = gc[i].getBounds();
        int xoffs = gcBounds.x;
        int yoffs = gcBounds.y;
        f.getContentPane().add(c);
        f.setLocation((i*50)+xoffs, (i*60)+yoffs);
        f.show();
     }
  }

Дополнительные сведения об API эксклюзивного полноэкранного режима см. в руководстве по API эксклюзивного полноэкранного режима.

См. также:
  • GraphicsEnvironment
  • GraphicsConfiguration

Краткое описание вложенных классов

Модификатор и тип Класс Описание
static enum  GraphicsDevice.WindowTranslucency
Типы прозрачности, поддерживаемые базовой системой.

Краткое описание полей

Модификатор и тип Поле Описание
static final int TYPE_IMAGE_BUFFER
Устройство является буфером изображений.
static final int TYPE_PRINTER
Устройство является принтером.
static final int TYPE_RASTER_SCREEN
Устройство является растровым экраном.

Краткое описание конструкторов

GraphicsDevice()
Модификатор Конструктор Описание
protected
Это абстрактный класс, который нельзя создать напрямую.

Краткое описание методов

Модификатор и тип Метод Описание
int getAvailableAcceleratedMemory()
Этот метод возвращает количество байтов, доступных в ускоренной памяти на этом устройстве.
GraphicsConfiguration getBestConfiguration(GraphicsConfigTemplate gct)
Возвращает наилучшую возможную конфигурацию, соответствующую критериям, определенным в GraphicsConfigTemplate.
abstract GraphicsConfiguration[] getConfigurations()
Возвращает все объекты GraphicsConfiguration, связанные с этим GraphicsDevice.
abstract GraphicsConfiguration getDefaultConfiguration()
Возвращает конфигурацию GraphicsConfiguration, связанную с этим GraphicsDevice.
DisplayMode getDisplayMode()
Возвращает текущий режим отображения этого GraphicsDevice.
DisplayMode[] getDisplayModes()
Возвращает все режимы отображения, доступные для этого GraphicsDevice.
Window getFullScreenWindow()
Возвращает объект Window, представляющий полноэкранное окно, если устройство находится в полноэкранном режиме.
abstract String getIDstring()
Возвращает строку идентификатора, связанную с этим GraphicsDevice.
abstract int getType()
Возвращает тип этого GraphicsDevice.
boolean isDisplayChangeSupported()
Возвращает true, если это GraphicsDevice поддерживает низкоуровневое изменение параметров отображения.
boolean isFullScreenSupported()
Возвращает true, если это GraphicsDevice поддерживает эксклюзивный полноэкранный режим.
boolean isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency translucencyKind)
Возвращает, поддерживает ли данное графическое устройство указанный уровень прозрачности.
void setDisplayMode(DisplayMode dm)
Устанавливает режим отображения этого графического устройства.
void setFullScreenWindow(Window w)
Переходит в полноэкранный режим или возвращается в оконный режим.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удален в будущей версии.
Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Приостанавливает текущий поток до пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Приостанавливает текущий поток до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Приостанавливает текущий поток до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

Подробное описание полей

TYPE_RASTER_SCREEN

public static final int TYPE_RASTER_SCREEN
Устройство является растровым экраном.
См. также:
  • Значения константных полей

TYPE_PRINTER

public static final int TYPE_PRINTER
Устройство является принтером.
См. также:
  • Значения константных полей

TYPE_IMAGE_BUFFER

public static final int TYPE_IMAGE_BUFFER
Устройство является буфером изображений. Этот буфер может находиться в памяти устройства или системной памяти, но физически недоступен для просмотра пользователем.
См. также:
  • Значения константных полей

Подробное описание конструкторов

GraphicsDevice

protected GraphicsDevice()
Это абстрактный класс, который нельзя создать напрямую. Экземпляры необходимо получать с помощью подходящего фабричного метода или метода запроса.
См. также:
  • GraphicsEnvironment.getScreenDevices()
  • GraphicsEnvironment.getDefaultScreenDevice()
  • GraphicsConfiguration.getDevice()

Подробное описание методов

getType

public abstract int getType()
Возвращает тип этого GraphicsDevice.
Возвращает:
тип этого GraphicsDevice, которым может быть TYPE_RASTER_SCREEN, TYPE_PRINTER или TYPE_IMAGE_BUFFER.
См. также:
  • TYPE_RASTER_SCREEN
  • TYPE_PRINTER
  • TYPE_IMAGE_BUFFER

getIDstring

public abstract String getIDstring()
Возвращает строку идентификатора, связанную с этим GraphicsDevice.

Конкретная программа может использовать несколько GraphicsDevice в GraphicsEnvironment. Этот метод возвращает String, идентифицирующую конкретный GraphicsDevice в локальной GraphicsEnvironment. Хотя общедоступного метода для установки этого String нет, программист может использовать String для отладки. Поставщики среды выполнения Java могут задавать формат возвращаемого значения String. Чтобы узнать, как интерпретировать значение String, обратитесь к поставщику среды выполнения Java. Чтобы узнать, кто является поставщиком, вызовите в своей программе метод getProperty класса System со строкой "java.vendor".

Возвращает:
String, идентифицирующий это GraphicsDevice.

getConfigurations

public abstract GraphicsConfiguration[] getConfigurations()
Возвращает все объекты GraphicsConfiguration, связанные с этим GraphicsDevice.
Возвращает:
массив объектов GraphicsConfiguration, связанных с этим GraphicsDevice.

getDefaultConfiguration

public abstract GraphicsConfiguration getDefaultConfiguration()
Возвращает конфигурацию GraphicsConfiguration, связанную с этим GraphicsDevice.
Возвращает:
конфигурацию GraphicsConfiguration этого GraphicsDevice.

getBestConfiguration

public GraphicsConfiguration getBestConfiguration(GraphicsConfigTemplate gct)
Возвращает наилучшую возможную конфигурацию, соответствующую критериям, определенным в GraphicsConfigTemplate.
Параметры:
gct — объект GraphicsConfigTemplate, используемый для получения допустимой GraphicsConfiguration
Возвращает:
GraphicsConfiguration, соответствующую критериям, определенным в указанном GraphicsConfigTemplate.
См. также:
  • GraphicsConfigTemplate

isFullScreenSupported

public boolean isFullScreenSupported()
Возвращает true, если это GraphicsDevice поддерживает эксклюзивный полноэкранный режим.
Возвращает:
поддерживается ли на этом графическом устройстве эксклюзивный полноэкранный режим
Начиная с версии:
1.4

setFullScreenWindow

public void setFullScreenWindow(Window w)
Переходит в полноэкранный режим или возвращается в оконный режим. Полноэкранный режим может быть эксклюзивным или эмулируемым. Эксклюзивный режим доступен, только если isFullScreenSupported возвращает true.

Эксклюзивный режим означает, что:

  • Окна не могут перекрывать полноэкранное окно. Все остальные окна приложений всегда будут располагаться ниже полноэкранного окна в Z-порядке.
  • На устройстве одновременно может быть только одно полноэкранное окно, поэтому вызов этого метода при наличии уже открытого полноэкранного окна переведет его обратно в оконный режим.
  • Окна методов ввода отключаются. Рекомендуется вызвать Component.enableInputMethods(false), чтобы компонент не относился к клиентам платформы методов ввода.

В эмулируемом полноэкранном режиме окно размещается и изменяет размер так, чтобы занимать максимально возможную видимую область экрана. Однако собственная оконная система может изменить запрошенные геометрические параметры, чтобы объект Window был размещен и имел размер, максимально соответствующие настройкам рабочего стола.

При переходе в полноэкранный режим этот метод делает окно видимым, если оно еще не было видимым. При возврате в оконный режим оно останется видимым.

При переходе в полноэкранный режим все эффекты прозрачности окна сбрасываются. Его форма устанавливается в null, значение непрозрачности — в 1.0f, а альфа-канал цвета фона — в 255 (полная непрозрачность). При возврате в оконный режим эти значения не восстанавливаются.

Поведение декорированных окон в полноэкранном режиме не определено и зависит от платформы. Поэтому рекомендуется отключать декорации у объекта Frame или Dialog с помощью метода setUndecorated.

При возврате из эксклюзивного полноэкранного режима в оконный все изменения параметров отображения, внесенные вызовом setDisplayMode, автоматически отменяются.

Параметры:
w — окно, используемое в полноэкранном режиме; null — при возврате в оконный режим. На некоторых платформах полноэкранное окно должно быть компонентом верхнего уровня (то есть Frame); поэтому предпочтительно использовать здесь Frame, а не Window.
Начиная с версии:
1.4
См. также:
  • isFullScreenSupported()
  • getFullScreenWindow()
  • setDisplayMode(DisplayMode)
  • Component.enableInputMethods(boolean)
  • Component.setVisible(boolean)
  • Frame.setUndecorated(boolean)
  • Dialog.setUndecorated(boolean)

getFullScreenWindow

public Window getFullScreenWindow()
Возвращает объект Window, представляющий полноэкранное окно, если устройство находится в полноэкранном режиме.
Возвращает:
полноэкранное окно или null, если устройство не находится в полноэкранном режиме.
Начиная с версии:
1.4
См. также:
  • setFullScreenWindow(Window)

isDisplayChangeSupported

public boolean isDisplayChangeSupported()
Возвращает true, если это GraphicsDevice поддерживает низкоуровневое изменение параметров отображения. На некоторых платформах низкоуровневое изменение параметров отображения разрешено только в эксклюзивном полноэкранном режиме (то есть если isFullScreenSupported() возвращает true и приложение уже перешло в полноэкранный режим с помощью setFullScreenWindow(Window)).
Возвращает:
поддерживается ли на этом графическом устройстве низкоуровневое изменение параметров отображения.
Начиная с версии:
1.4
См. также:
  • isFullScreenSupported()
  • setDisplayMode(DisplayMode)
  • setFullScreenWindow(Window)

setDisplayMode

public void setDisplayMode(DisplayMode dm)
Устанавливает режим отображения этого графического устройства. Это разрешено, только если isDisplayChangeSupported() возвращает true; также может потребоваться сначала перейти в эксклюзивный полноэкранный режим с помощью setFullScreenWindow(Window), если поддерживается эксклюзивный полноэкранный режим (то есть isFullScreenSupported() возвращает true).

Режим отображения должен быть одним из режимов, возвращаемых методом getDisplayModes(), за одним исключением: если передать режим отображения с частотой обновления DisplayMode.REFRESH_RATE_UNKNOWN, будет выбран режим из списка доступных режимов отображения с совпадающими шириной, высотой и глубиной цвета. Однако передавать режим отображения с глубиной цвета DisplayMode.BIT_DEPTH_MULTI разрешено, только если такой режим присутствует в списке, возвращаемом методом getDisplayModes().

Пример кода:

Frame frame;
DisplayMode newDisplayMode;
GraphicsDevice gd;
// create a Frame, select desired DisplayMode from the list of modes
// returned by gd.getDisplayModes() ...

if (gd.isFullScreenSupported()) {
    gd.setFullScreenWindow(frame);
} else {
   // proceed in non-full-screen mode
   frame.setSize(...);
   frame.setLocation(...);
   frame.setVisible(true);
}

if (gd.isDisplayChangeSupported()) {
    gd.setDisplayMode(newDisplayMode);
}
Параметры:
dm — новый режим отображения этого графического устройства.
Вызывает исключения:
IllegalArgumentException — если переданный DisplayMode равен null или отсутствует в массиве, возвращаемом методом getDisplayModes
UnsupportedOperationException — если isDisplayChangeSupported возвращает false
Начиная с версии:
1.4
См. также:
  • getDisplayMode()
  • getDisplayModes()
  • isDisplayChangeSupported()

getDisplayMode

public DisplayMode getDisplayMode()
Возвращает текущий режим отображения этого GraphicsDevice. Если частота обновления неизвестна, возвращаемый режим отображения может иметь частоту обновления DisplayMode.REFRESH_RATE_UNKNOWN. Аналогично, если глубина цвета неизвестна или поддерживается несколько значений глубины цвета, возвращаемый режим отображения может иметь глубину цвета DisplayMode.BIT_DEPTH_MULTI.
Возвращает:
текущий режим отображения этого графического устройства.
Начиная с версии:
1.4
См. также:
  • setDisplayMode(DisplayMode)

getDisplayModes

public DisplayMode[] getDisplayModes()
Возвращает все режимы отображения, доступные для этого GraphicsDevice. Если частота обновления неизвестна, возвращаемые режимы отображения могут иметь частоту обновления DisplayMode.REFRESH_RATE_UNKNOWN. Аналогично, если глубина цвета неизвестна или поддерживается несколько значений глубины цвета, возвращаемые режимы отображения могут иметь глубину цвета DisplayMode.BIT_DEPTH_MULTI.
Возвращает:
все режимы отображения, доступные для этого графического устройства.
Начиная с версии:
1.4

getAvailableAcceleratedMemory

public int getAvailableAcceleratedMemory()
Этот метод возвращает количество байтов, доступных в ускоренной памяти устройства. Некоторые изображения создаются или кэшируются в ускоренной памяти в порядке очереди. В некоторых операционных системах объем этой памяти ограничен. Вызов этого метода и тщательное планирование создания и сброса изображений могут помочь приложениям наиболее эффективно использовать этот ограниченный ресурс.
Обратите внимание, что возвращаемое число отражает доступный объем памяти в данный момент; при выделении памяти для некоторых изображений все же могут возникнуть проблемы. Например, в зависимости от операционной системы, драйвера, конфигурации памяти и потоков, для конкретного изображения может быть недоступен весь указанный объем. Дополнительные методы проверки в объекте ImageCapabilities, связанном с VolatileImage, позволяют определить, создан ли конкретный VolatileImage в ускоренной памяти.
Возвращает:
количество байтов, доступных в ускоренной памяти. Отрицательное возвращаемое значение означает, что объем ускоренной памяти этого GraphicsDevice не определен.
Начиная с версии:
1.4
См. также:
  • Image.flush()
  • ImageCapabilities.isAccelerated()

isWindowTranslucencySupported

public boolean isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency translucencyKind)
Возвращает, поддерживается ли данным графическим устройством указанный уровень прозрачности.
Параметры:
translucencyKind — тип поддерживаемой прозрачности
Возвращает:
поддерживается ли указанный тип прозрачности
Начиная с версии:
1.7

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API