Spec-Zone .ru
спецификации, руководства, описания, API
След: Создание GUI С JFC/Swing
Урок: Использование Других Функций Swing
Как Создать Экран-заставку
Домашняя страница > Создание GUI С JFC/Swing > Использование Других Функций Swing

Как Создать Экран-заставку

Почти у всех современных приложений есть экран-заставка. Обычно экраны-заставки используются в следующих целях:

Java Foundation Classes, и Swing и Абстрактный Инструментарий Работы с окнами (AWT), позволяют разработчику создать экраны-заставки в технологических приложениях Java. Однако, потому что основная цель экрана-заставки состоит в том, чтобы предоставить пользователю обратную связь о запуске приложения, задержка между запуском приложения и момент, когда экран-заставка раскрывается, должна быть минимальной. Прежде, чем экран-заставка может раскрыться, приложение должно загрузить и инициализировать Виртуальную машину Java™ (JVM), AWT, Swing, и иногда зависящие от приложения библиотеки также. Получающаяся задержка нескольких секунд сделала использование основанного на технологии экрана-заставки Java™ менее чем требуемым.

К счастью, Java™ SE 6 обеспечивает решение, которое позволяет приложению выводить на экран экран-заставку намного ранее, даже прежде, чем виртуальная машина запустится. Средство запуска приложения Java в состоянии декодировать изображение и вывести на экран его в простом неукрашенном окне.

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

Экран-заставка для Приложения Java

SplashScreen class используется, чтобы закрыть экран-заставку, изменить изображение экрана-заставки, получить позицию изображения или размер, и краску в экране-заставке. Приложение не может создать экземпляр этого class. Только единственный экземпляр, создаваемый в пределах этого class, может существовать, и этот экземпляр может быть получен, используя getSplashScreen() статический метод. Если приложение не создало экран-заставку при запуске через опцию командной строки или файла манифеста, getSplashScreen метод возвращает нуль.

Как правило, разработчик хочет сохранить изображение экрана-заставки на экране и вывести на экран что-то по изображению. У окна экрана-заставки есть оверлейная поверхность с альфа-каналом, и к этой поверхности можно получить доступ с традиционным Graphics2D интерфейс.

Следующий фрагмент кода показывает, как получить a SplashScreen объект, тогда как создать графический контекст с createGraphics() метод:

...
        final SplashScreen splash = SplashScreen.getSplashScreen();
        if (splash == null) {
            System.out.println("SplashScreen.getSplashScreen() returned null");
            return;
        }
        Graphics2D g = splash.createGraphics();
        if (g == null) {
            System.out.println("g is null");
            return;
        }
...

Найдите полный код демонстрационного примера в SplashDemo.java файл.


Отметьте: 

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


Собственный экран-заставка может быть выведен на экран следующими способами:

Как Использовать Параметр командной строки, чтобы Вывести на экран Экран-заставку

Чтобы вывести на экран экран-заставку из командной строки используют -splash: параметр командной строки. Этим параметром является опция средства запуска приложения Java, которая выводит на экран экран-заставку:

java -splash:<file name> <class name>

Попробуйте это: 
  1. Скомпилируйте SplashDemo.java файл.
  2. Сохраните splash.gif изображение в images каталог.
  3. Запустите приложение из командной строки со следующими параметрами:
    java -splash:images/splash.gif SplashDemo
    
  4. Ожидайте, пока экран-заставка не был полностью выведен на экран.
  5. Окно приложения появляется. Чтобы закрыть окно выбирают File|Exit из раскрывающегося меню или щелкают по X.
  6. Поменяйте имя экрана-заставки на несуществующее изображение, например, nnn.gif. Запустите приложение следующим образом:
    java -splash:images/nnn.gif SplashDemo
    
  7. Вы будете видеть следующую выходную строку:
    SplashScreen.getSplashScreen() returned null
    

Как Использовать Файл JAR, чтобы Вывести на экран Экран-заставку

Если Ваше приложение упаковывается в файле JAR, можно использовать SplashScreen-Image опция в файле манифеста, чтобы показать экран-заставку. Поместите изображение в файл JAR и определите путь в опции следующим образом:

Manifest-Version: 1.0
Main-Class: <class name>
SplashScreen-Image: <image name>

Попробуйте это: 
  1. Скомпилируйте SplashDemo.java файл.
  2. Сохраните splash.gif изображение в images каталог.
  3. Подготовьтесь splashmanifest.mf файл следующим образом:
    Manifest-Version: 1.0
    Main-Class: SplashDemo
    SplashScreen-Image: images/splash.gif
    
  4. Создайте файл JAR, используя следующую команду:
    jar cmf splashmanifest.mf splashDemo.jar SplashDemo*.class images/splash.gif
    
    Для получения дополнительной информации о файлах JAR, см. Используя Файлы JAR в Программах Упаковки в странице Файлов JAR.
  5. Запустите приложение:
    java -jar splashDemo.jar
    
  6. Ожидайте, пока экран-заставка не был выведенным на экран completly.
  7. Окно приложения появляется. Чтобы закрыть окно выбирают File|Exit из раскрывающегося меню или щелкают по X.

API Экрана-заставки

SplashScreen class не может использоваться, чтобы создать экран-заставку. Только единственный экземпляр, создаваемый в пределах этого class, может существовать.

Метод Цель
getSplashScreen () Возвраты SplashScreen объект, используемый для Java, запускает управление экраном-заставкой.
createGraphics () Создает графический контекст (как a Graphics2D объект), поскольку экран-заставка накладывают изображение, которое позволяет Вам дистиллировать экран-заставку.
getBounds () Возвращает границы окна экрана-заставки как a Rectangle.
близко () Закрывает экран-заставку и высвобождает все связанные средства.

Пример, Который Использует API SplashScreen

Следующая таблица приводит пример, который использует экран-заставку.

Пример Где Описано Примечания
SplashDemo Этот раздел Показывает экран-заставку прежде, чем открыть окно приложения.

Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Как Напечатать текст
Следующая страница: Как Использовать Системный лоток