Заставки и Мустанг

Согласно Википедии, заставки компьютера термин для изображения, которое появляется в то время как программа или операционная система загружается. Она предоставляет пользователю визуальным индикатором, что программа инициализации. До Java SE 6, (кодовое имя Mustang) вы могли бы предложить лишь поведение заставки путем создания окна в самом начале вашего основного метода и размещении изображений в нем. Хотя это работало, он требует выполнения Java в полной инициализации перед появившемся окне. Эта инициализация включен AWT и Swing обычно, так что задержка первоначального графического дисплея. С Mustang, новый параметр командной строки делает эту функцию гораздо проще. Он также отображает изображения быстрее, чтобы пользователь, то есть еще до того, Java Runtime началась. Окончательного включения этой функции подлежит утверждению JCP.

Command Line Option

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

java -splash:Hello.png HelloWorld

Да, это двоеточие между-всплеск и имя изображения. Это сразу же выводит изображение перед Runtime Environment полностью инициализирован. Изображения отображаются в центре экрана. Изображения заставку можно иметь GIF, PNG или JPEG форматы. Как и в случае с обычным классом изображения, заставки изображения поддержку анимации, транспарентности и прозрачности (прозрачность поддержка ограничивается Microsoft Windows 2000 или XP). Заставка исчезает при первом окне создается приложение.

JAR File Manifests

Обычно большинство пользователей не захотят поставить-всплеск на их въезд командной строки. Так, может быть более эффективным способом отображения заставки для создания файла манифеста в приложение, а затем объединить приложения с манифестом и изображения в JAR файл. Когда пользователь запускает приложение с JAR файла, появляется заставка. В этом случае пользователю не нужно указывать опцию командной строки.

Проявляться конфигурационный файл называется SplashScreen-Image. Варианта следует файла образа. Полный путь к файлу должен быть указан, если файл находится не на самом высоком уровне ЕАО файла.

Вот простой пример, который демонстрирует эти новые возможности заставки. Во-первых, создайте следующую программу:


   import javax.swing.*;

   import java.awt.*;

   

   public class HelloSplash {

     public static void main(String args[]) {

       Runnable runner = new Runnable() {

         public void run() {

           try {

               Thread.sleep(1500);

           catch (InterruptedException e) {

           }

           JFrame frame = new JFrame("Splash Me");

           frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

           JLabel label = new JLabel(

                "Hello, Splash", JLabel.CENTER);

           frame.add(label, BorderLayout.CENTER);

           frame.setSize(30095);

           frame.setVisible(true);

        }

       };

       EventQueue.invokeLater(runner);

     }

    

Далее, компиляции программы:

javac HelloSplash.java

Тогда попробуйте в командной строке-всплеск. Для простоты использования изображений заставка, что в том же каталоге, что и программа (это не является обязательным требованием):

java -splash:MyImage.png HelloSplash

Вы увидите MyImage в центре экрана немедленно, с последующим применением экране после того, окружающая среда Java Runtime инициализирует.



javax.swing
javax.swing

Теперь давайте попробуем подход JAR файле. Сначала создайте manifest.mf файла манифеста. Содержимое файла должна выглядеть следующим образом:

Manifest-Version: 1.0
Main-Class: HelloSplash
SplashScreen-Image: MyImage.png

Затем пакет JAR файл:

jar -mcvf manifest.mf Splash.jar HelloSplash*.class MyImage.png

Затем запустите JAR без указания-всплеск параметр командной строки:

java -jar Splash.jar

Как и прежде, вы должны увидеть заставку с последующим применением экрана.

Если ваш JAR файл изображения заставки, указанный в своем манифесте, и пользователь задает плеск изображений с помощью командной строки, изображение командной строки дается приоритет и значок.

Beyond the Basics

Хотя в командной строке-всплеск и явной SplashScreen-Параметры изображения достаточно для большинства задач, существует больше для заставки в Мустанге. Java.awt Предложений SplashScreen класс для более продвинутых функций за рамки просто показывая изображение заставки.

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

Использование других SplashScreen методы, вы можете обнаружить различные вещи, связанные с заставки:

  • getBounds() returns the bounds of the splash screen rectangle.
  • getImageURL() returns the URL of the splash screen image.
  • getSize() returns the size of the splash screen window.
  • isVisible() indicates whether the splash screen is visible

Вы можете изменять изображение, показанное после заставки загружен, но до запуска приложения. У вас есть два способа сделать это. SetImageURL () позволяет вам обеспечить URL для нового изображения на дисплее. Второй подход, который, вероятно, более типичным, является вызов getGraphics () для получения графического контекста (java.awt.Graphics) в окно. Затем обновите изображение с любой нормальный графический и Java 2D API. Это потому, что это экземпляр Graphics2D, а не просто java.awt.Graphics. После того как вы привлечь к контексту графику, вы вызываете Update () Метод SplashScreen обратить обновленный образ.

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


   import javax.swing.*;

   import java.awt.*;

   import java.awt.geom.*;

   import java.util.*;



   public class ExtendedSplash {

     public static void main(String args[]) {

       Runnable runner = new Runnable() {

         public void run() {

           Random random = new Random();

           SplashScreen splash = SplashScreen.getSplashScreen();

           Graphics2D g = (Graphics2D)splash.getGraphics();

           Dimension dim = splash.getSize();

           Color colors[] {Color.RED, Color.ORANGE, 

             Color.YELLOW, Color.GREEN, Color.BLUE, 

             Color.MAGENTA};

           for (int i=0; i<100; i++) {

             g.setColor(colors[i % colors.length]);

             g.fillRect(5050, dim.width-100, dim.height-100);

             splash.update();

             try {

               Thread.sleep(250);

             catch (InterruptedException ignored) {

             }

           }

           JFrame frame = new JFrame("Splash Me2");

           frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

           JLabel label = 

             new JLabel("Hello, Splash", JLabel.CENTER);

           frame.add(label, BorderLayout.CENTER);

           frame.setSize(30095);

           frame.setVisible(true);

         }

       };

       EventQueue.invokeLater(runner);

     }

   }



javax.swing

Обратите внимание, что рисунок делается на изображении заставки.

После цвета Велоспорт завершена, этот пример показывает кадр. Это типично для запуска процесса: после завершения инициализации показать рамку, которая скрывает заставка.

SplashScreen окончательного варианта говоря уже использует Close () метода. Вы можете вызывать этот метод, если вы хотите закрывать окна и освободить связанные с ними ресурсы. Это не нужно явно вызвать этот метод, поскольку оно вызывается автоматически при первом окно становится видимым.

За дополнительной информацией об использовании экраны, см. в статье технического Новый Splash-Screen Функциональность в Mustang. Также см. Javadoc для.

Copyright (C) 2004-2005 Sun Microsystems, Inc
Все права защищены.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>