Класс SplashScreen

public final class SplashScreen
extends Object

Экран загрузки может быть отображен при запуске приложения, до запуска Java Virtual Machine (JVM). Экран загрузки отображается как окно без оформления, содержащее изображение. Для изображения можно использовать файлы GIF, JPEG или PNG. Анимация поддерживается для формата GIF, а прозрачность — для GIF и PNG. Окно размещается в центре экрана. Положение на системах с несколькими мониторами не определено. Оно зависит от платформы и реализации.

Окно экрана загрузки автоматически закрывается, как только первое окно отображается Swing/AWT (также может быть закрыто вручную с помощью Java API, см. ниже).

Если ваше приложение упаковано в файл jar, вы можете использовать опцию "SplashScreen-Image" в файле манифеста, чтобы показать экран загрузки. Разместите изображение в архиве jar и укажите путь в опции. Путь не должен иметь ведущую косую черту.
Например, в файле manifest.mf:

Manifest-Version: 1.0
 Main-Class: Test
 SplashScreen-Image: filename.gif

Если реализация Java предоставляет командную строку, и вы запускаете свое приложение с помощью командной строки или ярлыка, используйте опцию запуска приложения Java, чтобы отобразить экран загрузки. Реализация Oracle позволяет указать расположение изображения экрана загрузки с помощью опции -splash:.
Например:

java -splash:filename.gif Test
Поддерживается масштабирование изображений HiDPI. Имя несжатого изображения (например, filename.gif) следует передавать в опцию manifest.mf/-splash: для всех типов изображений независимо от HiDPI и Non-HiDPI. Ниже приведена соглашение об именовании масштабируемых изображений. Масштаб экрана 1,25: filename@125pct.gif Масштаб экрана 1,50: filename@150pct.gif Масштаб экрана 2: filename@200pct.gif и filename@2x.gif оба поддерживаются Масштаб экрана 2,50: filename@250pct.gif Масштаб экрана 3: filename@300pct.gif и filename@3x.gif оба поддерживаются. Командная строка имеет более высокий приоритет по сравнению с настройками манифеста.

Экран загрузки будет отображен максимально точно, чтобы представить все изображение экрана загрузки с учетом ограничений целевой платформы и дисплея.

Подразумевается, что указанное изображение отображается на экране "как есть", сохраняя точные цветовые значения, как указано в файле изображения. Однако в определенных обстоятельствах отображаемое изображение может отличаться, например, при применении цветового дithering для отображения изображения с 32 битами на пиксель (bpp) на экране с 16 или 8 bpp. Конфигурация дисплея родной платформы также может повлиять на цвета отображаемого изображения (например, цветовые профили и т. д.).

Класс SplashScreen предоставляет API для управления экраном загрузки. Этот класс можно использовать для закрытия экрана загрузки, изменения изображения экрана загрузки, получения позиции/размера окна экрана загрузки, а также для рисования на экране загрузки. Его нельзя использовать для создания экрана загрузки. Для этого следует использовать опции, предоставляемые реализацией Java.

Этот класс нельзя создать. Может существовать только один экземпляр этого класса, который можно получить с помощью статического метода getSplashScreen(). В случае, если экран загрузки не был создан при запуске приложения через командную строку или опцию файла манифеста, метод getSplashScreen возвращает null.

Since:
1.6

Методы

Модификатор и типМетодОписание
voidclose()

Скрывает экран загрузки, закрывает окно и освобождает все связанные ресурсы.

Graphics2DcreateGraphics()

Создает контекст графики (как объект Graphics2D) для наложения изображения на экран загрузки, что позволяет рисовать поверх экрана загрузки.

RectanglegetBounds()

Возвращает границы окна экрана загрузки в виде Rectangle.

URLgetImageURL()

Возвращает текущее изображение экрана загрузки.

DimensiongetSize()

Возвращает размер окна экрана загрузки в виде Dimension.

static SplashScreengetSplashScreen()

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

booleanisVisible()

Определяет, виден ли экран загрузки.

voidsetImageURL​(URL imageURL)

Изменяет изображение экрана загрузки.

voidupdate()

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

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Методы

getSplashScreen

public static SplashScreen getSplashScreen()

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

Returns:
экземпляр SplashScreen, или null, если его нет или он уже был закрыт
Throws:
UnsupportedOperationException - если функция экрана загрузки не поддерживается текущим инструментом
HeadlessException - если GraphicsEnvironment.isHeadless() возвращает true

setImageURL

public void setImageURL(URL imageURL)
                 throws NullPointerException,
                        IOException,
                        IllegalStateException

Изменяет изображение экрана загрузки. Новое изображение загружается из указанного URL-адреса; поддерживаются форматы изображений GIF, JPEG и PNG. Метод возвращает после завершения загрузки изображения и обновления окна. Окно экрана загрузки изменяет свой размер в соответствии с размерами изображения и центрируется на экране.

Parameters:
imageURL - URL нового изображения экрана загрузки (не null)
Throws:
NullPointerException - если imageURL равно null
IOException - если произошла ошибка при загрузке изображения
IllegalStateException - если экран загрузки уже был закрыт

getImageURL

public URL getImageURL()
                throws IllegalStateException

Возвращает текущее изображение экрана загрузки.

Returns:
URL текущего файла изображения экрана загрузки
Throws:
IllegalStateException - если экран загрузки уже был закрыт

getBounds

public Rectangle getBounds()
                    throws IllegalStateException

Возвращает границы окна экрана загрузки в виде Rectangle. Это может быть полезно, например, если вы хотите заменить экран загрузки своим окном в том же месте.

Вы не можете управлять размером или положением экрана загрузки. Размер экрана загрузки автоматически изменяется при изменении изображения.

Изображение может содержать прозрачные области, и поэтому указанные границы могут быть больше, чем видимое изображение экрана загрузки на экране.

Returns:
объект Rectangle, содержащий границы экрана загрузки
Throws:
IllegalStateException - если экран загрузки уже был закрыт

getSize

public Dimension getSize()
                  throws IllegalStateException

Возвращает размер окна экрана загрузки в виде Dimension. Это может быть полезно, например, если вы хотите рисовать на наложенном поверх экрана загрузки слое.

Вы не можете управлять размером или положением экрана загрузки. Размер экрана загрузки автоматически изменяется при изменении изображения.

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

Returns:
объект Dimension, указывающий размер экрана загрузки
Throws:
IllegalStateException - если экран загрузки уже был закрыт

createGraphics

public Graphics2D createGraphics()
                          throws IllegalStateException

Создает контекст графики (как объект Graphics2D) для наложения изображения на экран загрузки, что позволяет рисовать поверх экрана загрузки. Обратите внимание, что вы рисуете не на основном изображении, а на изображении, которое отображается поверх основного изображения с использованием альфа-смешивания. Также обратите внимание, что рисование на наложенном изображении не обязательно обновляет содержимое окна экрана загрузки. Вам следует вызвать update() для объекта SplashScreen, когда вы хотите, чтобы экран загрузки был обновлен немедленно.

Точка (0, 0) в пространстве координат контекста графики соответствует началу границ родного окна экрана загрузки (см. getBounds()).

Returns:
контекст графики для наложенного поверх экрана загрузки слоя
Throws:
IllegalStateException - если экран загрузки уже был закрыт

update

public void update()
            throws IllegalStateException

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

Throws:
IllegalStateException - если наложенное изображение не существует; например, если createGraphics никогда не вызывался, или если экран загрузки уже был закрыт

close

public void close()
           throws IllegalStateException

Скрывает экран загрузки, закрывает окно и освобождает все связанные ресурсы.

Throws:
IllegalStateException - если экран загрузки уже был закрыт

isVisible

public boolean isVisible()

Определяет, виден ли экран загрузки. Экран загрузки может быть скрыт с помощью close(), он также скрывается автоматически, когда первое окно AWT/Swing становится видимым.

Обратите внимание, что родная платформа может отложить отображение родного окна экрана загрузки на экране. Возвращаемое значение true для этого метода гарантирует только то, что условия для скрытия окна экрана загрузки еще не наступили.

Returns:
true, если экран загрузки видим (еще не закрыт), false в противном случае

© 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/SplashScreen.html

Spec-Zone .ru
спецификации, руководства, описания, API