Spec-Zone .ru
спецификации, руководства, описания, API
След: Развертывание
Урок: Сеть Java Запускается
Отображение Специализированного Индикатора хода выполнения Загрузки
Домашняя страница > Развертывание > Сеть Java Запускается

Отображение Специализированного Индикатора хода выполнения Загрузки

Сеть Java Запускается, приложение может вывести на экран специализированный индикатор хода выполнения загрузки, который показывает продвижение загрузки ресурсов приложения.

Рассмотрите Погодное заявление и CustomProgress class, чтобы понять, как реализовать специализированный индикатор хода выполнения загрузки для Сети Java, Запускает приложение. С целью демонстрации большой и длительной загрузки Запускается эта Сеть Java, файл JAR приложения был расширенным artifically и customprogress-webstart.jnlp файл определяет дополнительные файлы JAR как ресурсы.

Разработка Специализированного Индикатора хода выполнения Загрузки

Чтобы разработать специализированный индикатор хода выполнения загрузки для Вашей Сети Java Запускают приложение, создают class, который реализует DownloadServiceListener интерфейс.

У конструктора загружающегося индикатора хода выполнения class не должно быть никаких параметров.

import javax.jnlp.DownloadServiceListener;
import java.awt.Container;
import java.applet.AppletStub;
import netscape.javascript.*;
// ...
public class CustomProgress
        implements DownloadServiceListener {   
    JFrame frame = null;
    JProgressBar progressBar = null;
    boolean uiCreated = false;

    public CustomProgress() {
    }
...
}    

Следующий фрагмент кода показывает, как создать UI для загружающегося индикатора хода выполнения:

private void create() {
    JPanel top = createComponents();
    frame = new JFrame(); // top level custom progress
                          // indicator UI
    frame.getContentPane().add(top,
                               BorderLayout.CENTER);
    frame.setBounds(300,300,400,300);
    frame.pack();
    updateProgressUI(0);
}

private JPanel createComponents() {
    JPanel top = new JPanel();
    top.setBackground(Color.WHITE);
    top.setLayout(new BorderLayout(20, 20));
 
    String lblText =
        "<html><font color=green size=+2" +
        ">JDK Documentation</font><br/> " +
        "The one-stop shop for Java enlightenment! <br/></html>";
    JLabel lbl = new JLabel(lblText);
    top.add(lbl, BorderLayout.NORTH);
    ...
    progressBar = new JProgressBar(0, 100);
    progressBar.setValue(0);
    progressBar.setStringPainted(true);
    top.add(progressBar, BorderLayout.SOUTH);

    return top;
}

Создайте и обновите загружающийся индикатор хода выполнения в следующих методах, основанных на overallPercent параметр. Эти методы регулярно вызываются Сетью Java, Запускают программное обеспечение, чтобы передать продвижение загрузки приложения. Сеть Java Запускается, программное обеспечение будет всегда отправлять сообщение, когда загрузка и проверка допустимости ресурсов будут на 100 % полны.

public void progress(URL url, String version, long readSoFar,
                     long total, int overallPercent) {        
    updateProgressUI(overallPercent);

}

public void upgradingArchive(java.net.URL url,
                  java.lang.String version,
                  int patchPercent,
                  int overallPercent) {
    updateProgressUI(overallPercent);
}

public void validating(java.net.URL url,
            java.lang.String version,
            long entry,
            long total,
            int overallPercent) {
    updateProgressUI(overallPercent);
}

private void updateProgressUI(int overallPercent) {
    if (overallPercent > 0 && overallPercent < 99) {
        if (!uiCreated) {
            uiCreated = true;
            // create custom progress indicator's
            // UI only if there is more work to do,
            // meaning overallPercent > 0 and
            // < 100 this prevents flashing when
            // RIA is loaded from cache
            create();
        }
        progressBar.setValue(overallPercent);
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                frame.setVisible(true);
            }
        });
    } else {
        // hide frame when overallPercent is
        // above 99
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                frame.setVisible(false);
                frame.dispose();
            }
        });
    }
}

Скомпилируйте загружающийся индикатор хода выполнения class и создайте файл JAR со всеми ресурсами, должен был вывести на экран загружающийся индикатор хода выполнения. Включайте <your JRE directory>/lib/javaws.jar файл в Вашем classpath включать компиляции.

Загружающийся индикатор хода выполнения class теперь готов к употреблению. Следующий шаг должен определить этот файл JAR индикатора хода выполнения загрузки, поскольку Ваша Сеть Java Запускает индикатор хода выполнения приложения.

Определение Специализированного Индикатора хода выполнения Загрузки для Сети Java Запускает Приложение

Чтобы определить специализированный индикатор хода выполнения загрузки для Сети Java Запускают приложение, включают следующую информацию в файл приложения JNLP:

Следующий фрагмент кода от customprogress-webstart.jnlp файл выводит на экран использование download="progress" и progress-class атрибуты.

<jnlp spec="1.0+" codebase=
  "http://docs.oracle.com/javase/tutorialJWS/deployment/webstart/ex6" 
   href=
   "webstart_AppWithCustomProgressIndicator/customprogress-webstart.jnlp">
  <!-- ... -->
  <resources>
    <j2se version="1.6+"/>
    <jar href=
      "webstart_AppWithCustomProgressIndicator/webstart_AppWithCustomProgressIndicator.jar" />
    <jar href=
      "webstart_CustomProgressIndicator/webstart_CustomProgressIndicator.jar"
         download="progress" />
    <jar href=
      "webstart_AppWithCustomProgressIndicator/lib/IconDemo.jar" />
    <jar href=
      "webstart_AppWithCustomProgressIndicator/lib/SplitPaneDemo.jar" />
    <jar href=
      "webstart_AppWithCustomProgressIndicator/lib/SplitPaneDemo2.jar" />
    <jar href=
      "webstart_AppWithCustomProgressIndicator/lib/TextBatchPrintingDemo.jar" />
    <jar href=
      "webstart_AppWithCustomProgressIndicator/lib/ToolBarDemo.jar" />
    <jar href=
      "webstart_AppWithCustomProgressIndicator/lib/ToolBarDemo2.jar" />
    <jar href=
      "webstart_AppWithCustomProgressIndicator/lib/SwingSet2.jar" />
  </resources>
  <application-desc 
      main-class="customprogressindicatordemo.Main"
      progress-class="customprogressindicator.CustomProgress"
  />
  <!-- ... -->
</jnlp>

Развернитесь Сеть Java Запускают приложение в веб-странице. Открытый JavaWebStartAppPage.html в веб-браузере, чтобы просмотреть специализированный индикатор хода выполнения загрузки для Погодного приложения.


Отметьте:  

Чтобы просмотреть пример должным образом, Вы должны установить, по крайней мере, Java Комплект разработчика SE (JDK) 6 обновлений 18 выпусков.



Отметьте: 

Если Вы просмотрели эту Сеть Java, Запускают приложение прежде, очищают Ваш кэш при использовании Панели управления Java прежде, чем просмотреть приложение снова. Вы не будете в состоянии видеть индикатор хода выполнения для ранее кэшируемого приложения.



Отметьте:  

Если Вы не видите, что пример работает, Вы, возможно, должны были бы включить интерпретатору JavaScript в своем браузере так, чтобы сценарий Инструментария Развертывания мог функционировать должным образом.


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

См. Настройку Загружающейся темы Опыта для получения дополнительной информации о настройке богатого Интернет-приложения (RIA) опыт загрузки.


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

Предыдущая страница: Установка веб-сервера
Следующая страница: Выполнение Сети Java Запускает Приложение