Spec-Zone.ru › OpenJDK 21

Класс 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()
Возвращает тип этого 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 в локальной GraphicsEnvironment. Хотя нет публичного метода для установки этого String, программист может использовать его для отладки. Поставщики Java Runtime Environment могут форматировать возвращаемое значение String. Чтобы определить, как интерпретировать значение String, обратитесь к поставщику вашей Java Runtime. Чтобы узнать, кто является поставщиком, из вашей программы, вызовите метод getProperty класса System со строкой "java.vendor".

Возвращает:
строку, являющуюся идентификатором этого 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 поддерживает полноэкранный эксклюзивный режим. Если установлен SecurityManager, его метод checkPermission будет вызван со значением AWTPermission("fullScreenExclusive"). isFullScreenSupported возвращает true только в том случае, если это разрешение предоставлено.
Возвращает:
поддерживается ли полноэкранный эксклюзивный режим для этого графического устройства
Since:
1.4
См. также:
  • AWTPermission

setFullScreenWindow

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

Эксклюзивный режим подразумевает:

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

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

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

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

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

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

Параметры:
w - окно для использования в качестве полноэкранного окна; null при возврате в оконный режим. Некоторые платформы ожидают, что полноэкранное окно будет компонентом верхнего уровня (т.е., Frame); поэтому предпочтительнее использовать Frame вместо Window.
Since:
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 , если устройство не находится в полноэкранном режиме.
Since:
1.4
См. также:
  • setFullScreenWindow(Window)

isDisplayChangeSupported

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

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

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 null, или он недоступен в массиве, возвращаемом 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, 2023, 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/21/docs/api/java.desktop/java/awt/GraphicsDevice.html

Spec-Zone.ru

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