Spec-Zone.ru › OpenJDK 24

Класс 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)
Переход в полноэкранный режим или возврат к оконному режиму.

Методы, объявленные в классе java.lang.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()
Возвращает тип этого устройства.
Возвращает:
тип этого устройства, который может быть TYPE_RASTER_SCREEN, TYPE_PRINTER или TYPE_IMAGE_BUFFER.
См. также:
  • TYPE_RASTER_SCREEN
  • TYPE_PRINTER
  • TYPE_IMAGE_BUFFER

getIDstring

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

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

Возвращает:
строку, являющуюся идентификатором данного устройства.

getConfigurations

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

getDefaultConfiguration

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

getBestConfiguration

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

isFullScreenSupported

public boolean isFullScreenSupported()
Возвращает true, если это устройство поддерживает эксклюзивный полноэкранный режим.
Возвращает:
поддерживается ли эксклюзивный полноэкранный режим для этого графического устройства
С:
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(java.awt.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, если это устройство поддерживает низкоуровневые изменения отображения. На некоторых платформах низкоуровневые изменения отображения разрешены только в эксклюзивном полноэкранном режиме (то есть, если isFullScreenSupported() возвращает true и приложение уже вошло в полноэкранный режим с помощью setFullScreenWindow(java.awt.Window)).
Возвращает:
поддерживаются ли низкоуровневые изменения отображения для этого графического устройства.
С:
1.4
См. также:
  • isFullScreenSupported()
  • setDisplayMode(java.awt.DisplayMode)
  • setFullScreenWindow(java.awt.Window)
END_OF_DOCUMENT_MARKER

Установить режим отображения

public void setDisplayMode(DisplayMode dm)
Устанавливает режим отображения этого графического устройства. Это разрешено только в том случае, если isDisplayChangeSupported() возвращает true и может потребовать предварительного перехода в полноэкранный режим с использованием setFullScreenWindow(java.awt.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 некорректен или отсутствует в массиве, возвращаемом getDisplayModes
UnsupportedOperationException - если isDisplayChangeSupported возвращает false
С:
1.4
См. также:
  • getDisplayMode()
  • getDisplayModes()
  • isDisplayChangeSupported()

Получить режим отображения

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

Получить доступные режимы отображения

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

Получить доступную ускоренную память

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

Поддерживается ли прозрачность окна

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

© 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/awt/GraphicsDevice.html

Spec-Zone.ru

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