Класс 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 class | GraphicsDevice.WindowTranslucency | Виды полупрозрачности, поддерживаемые основной системой. |
Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
static int | TYPE_IMAGE_BUFFER | Устройство — это буфер изображения. |
static int | TYPE_PRINTER | Устройство — это принтер. |
static int | TYPE_RASTER_SCREEN | Устройство — это растровый экран. |
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | GraphicsDevice() | Это абстрактный класс, который нельзя создать напрямую. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
int | getAvailableAcceleratedMemory() | Этот метод возвращает количество байтов, доступных в ускоренной памяти на этом устройстве. |
GraphicsConfiguration | getBestConfiguration(GraphicsConfigTemplate gct) | Возвращает «лучшую» возможную конфигурацию, которая удовлетворяет критериям, определённым в |
abstract GraphicsConfiguration[] | getConfigurations() | Возвращает все объекты |
abstract GraphicsConfiguration | getDefaultConfiguration() | Возвращает стандартную конфигурацию |
DisplayMode | getDisplayMode() | Возвращает текущий режим отображения этого |
DisplayMode[] | getDisplayModes() | Возвращает все доступные режимы отображения для этого |
Window | getFullScreenWindow() | Возвращает объект |
abstract String | getIDstring() | Возвращает строку идентификации, связанную с этим |
abstract int | getType() | Возвращает тип этого |
boolean | isDisplayChangeSupported() | Возвращает |
boolean | isFullScreenSupported() | Возвращает |
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()
Это абстрактный класс, который нельзя создать напрямую. Экземпляры должны быть получены из соответствующего фабричного метода или метода запроса.
Методы
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™ Runtime Environment могут форматировать возвращаемое значение String.
Для определения способа интерпретации значения String, обратитесь к поставщику вашей Java Runtime. Чтобы узнать, кто является поставщиком, из вашей программы вызовите метод 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 поддерживает полноэкранный режим. Если установлен SecurityManager, его метод checkPermission будет вызван с AWTPermission("fullScreenExclusive"). isFullScreenSupported возвращает true только если разрешение предоставлено.
- Возвращает:
- поддерживается ли полноэкранный режим для этого графического устройства
- С:
- 1.4
- См. также:
AWTPermission
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 если это GraphicsDevice поддерживает изменения отображения на низком уровне. На некоторых платформах изменения отображения на низком уровне могут быть разрешены только в эксклюзивном полноэкранном режиме (то есть, если isFullScreenSupported() возвращает true и приложение уже перешло в полноэкранный режим с помощью setFullScreenWindow(java.awt.Window)).
- Возвращает:
- поддерживаются ли изменения отображения на низком уровне для этого графического устройства.
- С:
- 1.4
- См. также:
-
isFullScreenSupported(),setDisplayMode(java.awt.DisplayMode),setFullScreenWindow(java.awt.Window)
setDisplayMode
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()
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
© 1993, 2020, 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/11/docs/api/java.desktop/java/awt/GraphicsDevice.html