Класс SplashScreen
public final class SplashScreen extends Object
Если ваше приложение упаковано в 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-битного изображения на экране 16 или 8 бит. Конфигурация дисплея родной платформы также может влиять на цвета отображаемого изображения (например, профили цветов и т. д.)
Класс SplashScreen предоставляет API для управления экраном загрузки. Этот класс может быть использован для закрытия экрана загрузки, изменения изображения экрана загрузки, получения позиции/размера окна родного экрана загрузки и рисования на экране загрузки. Он не может быть использован для создания экрана загрузки. Вы должны использовать опции, предоставляемые реализацией Java для этого.
Этот класс не может быть инстанцирован. Может существовать только один экземпляр этого класса, и его можно получить, используя статический метод getSplashScreen(). В случае, если экран загрузки не был создан во время запуска приложения через командную строку или опцию файла манифеста, метод getSplashScreen возвращает null.
- С:
- 1.6
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
close() |
Скрывает экран загрузки, закрывает окно и высвобождает все связанные ресурсы. |
Graphics2D |
createGraphics() |
Создаёт контекст графики (как объект Graphics2D) для наложения изображения на экран загрузки, что позволяет рисовать поверх экрана загрузки. |
Rectangle |
getBounds() |
Возвращает границы окна экрана загрузки как Rectangle. |
URL |
getImageURL() |
Возвращает текущее изображение экрана загрузки. |
Dimension |
getSize() |
Возвращает размер окна экрана загрузки как Dimension. |
static SplashScreen |
getSplashScreen() |
Возвращает объект SplashScreen, используемый для управления экраном загрузки Java на системах, которые поддерживают отображение. |
boolean |
isVisible() |
Определяет, виден ли экран загрузки. |
void |
setImageURL |
Изменяет изображение экрана загрузки. |
void |
update() |
Обновляет окно экрана загрузки текущим содержимым наложенного изображения. |
Подробное описание методов
getSplashScreen
public static SplashScreen getSplashScreen()
SplashScreen, используемый для управления всплывающим экраном Java на системах, поддерживающих отображение.- Возвращает:
- экземпляр
SplashScreen, илиnull, если его нет или он уже закрыт - Исключения:
-
UnsupportedOperationException- если функция всплывающего экрана не поддерживается текущей библиотекой -
HeadlessException- еслиGraphicsEnvironment.isHeadless()возвращает true
setImageURL
public void setImageURL(URL imageURL) throws NullPointerException, IOException, IllegalStateException
- Параметры:
-
imageURL- URL нового изображения всплывающего экрана - Исключения:
-
NullPointerException- еслиimageURLравноnull -
IOException- если произошла ошибка при загрузке изображения -
IllegalStateException- если всплывающий экран уже закрыт
getImageURL
public URL getImageURL() throws IllegalStateException
- Возвращает:
- URL текущего изображения всплывающего экрана
- Исключения:
-
IllegalStateException- если всплывающий экран уже закрыт
getBounds
public Rectangle getBounds() throws IllegalStateException
Rectangle. Это может быть полезно, если, например, вы хотите заменить всплывающий экран своим окном в том же месте. Вы не можете контролировать размер или положение всплывающего экрана. Размер всплывающего экрана автоматически корректируется при изменении изображения.
Изображение может содержать прозрачные области, поэтому возвращенные границы могут быть больше, чем видимое изображение всплывающего экрана на экране.
- Возвращает:
- объект
Rectangle, содержащий границы всплывающего экрана - Исключения:
-
IllegalStateException- если всплывающий экран уже закрыт
getSize
public Dimension getSize() throws IllegalStateException
Dimension. Это может быть полезно, например, если вы хотите рисовать на поверхности наложения всплывающего экрана. Вы не можете контролировать размер или положение всплывающего экрана. Размер всплывающего экрана автоматически корректируется при изменении изображения.
Изображение может содержать прозрачные области, поэтому возвращенный размер может быть больше, чем видимое изображение всплывающего экрана на экране.
- Возвращает:
- объект
Dimension, указывающий размер всплывающего экрана - Исключения:
-
IllegalStateException- если всплывающий экран уже закрыт
createGraphics
public Graphics2D createGraphics() throws IllegalStateException
Graphics2D) для изображения наложения всплывающего экрана, что позволяет рисовать поверх него. Обратите внимание, что вы рисуете не на основном изображении, а на изображении, отображаемом поверх основного изображения с помощью альфа-смешивания. Также обратите внимание, что рисование на изображении наложения не обязательно обновляет содержимое окна всплывающего экрана. Вам следует вызвать update() для объекта SplashScreen, если вы хотите, чтобы всплывающий экран был обновлен немедленно. Точка (0, 0) в пространстве координат контекста графики соответствует началу границ окна всплывающего экрана (см. getBounds()).
- Возвращает:
- контекст графики для поверхности наложения всплывающего экрана
- Исключения:
-
IllegalStateException- если всплывающий экран уже закрыт
update
public void update() throws IllegalStateException
- Исключения:
-
IllegalStateException- если изображение наложения не существует; например, еслиcreateGraphicsникогда не вызывался, или если всплывающий экран уже закрыт
close
public void close() throws IllegalStateException
- Исключения:
-
IllegalStateException- если всплывающий экран уже закрыт
isVisible
public boolean isVisible()
close(), он также скрывается автоматически, когда первое окно AWT/Swing становится видимым. Обратите внимание, что нативная платформа может отложить отображение окна всплывающего экрана на экране. Возвращаемое значение метода true гарантирует только то, что условия скрытия окна всплывающего экрана еще не наступили.
- Возвращает:
- true, если всплывающий экран отображается (еще не закрыт), false в противном случае
© 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/SplashScreen.html