Spec-Zone.ru › OpenJDK 25

Класс 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

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

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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/java/awt/GraphicsDevice.html

Spec-Zone.ru

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