Класс 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. Имя не масштабируемого изображения, т.е. имя файла.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.
- С:
- 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 нового изображения всплывающего окна, неnull - Исключение:
-
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, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/awt/SplashScreen.html