Класс 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()
Это абстрактный класс, который нельзя создать напрямую. Экземпляры необходимо получить из подходящего фабричного метода или метода запроса.
- См. также:
-
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™ 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.
Эксклюзивный режим подразумевает:
- Окна не могут перекрывать полноэкранное окно. Все остальные окна приложений всегда будут отображаться под полноэкранным окном в порядке наложения.
- Одновременно на устройстве может быть только одно полноэкранное окно, поэтому вызов этого метода, когда существует существующее полноэкранное окно, приведет к возврату существующего полноэкранного окна в оконный режим.
- Окна методов ввода отключены. Рекомендуется вызвать
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 создано в ускоренной памяти.
- Возвращает:
- количество байтов, доступных в ускоренной памяти. Отрицательное возвращаемое значение указывает, что количество ускоренной памяти на этом графическом устройстве неопределено.
- С:
- 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.