Вход/Регистрация
JavaScript. Подробное руководство, 6-е издание
вернуться

Флэнаган Дэвид

Шрифт:

var url = new URL(urlfield.text);

// Предложить пользователю выбрать файл для сохранения содержимого URL

var response = filechooser.showSaveDialog(fгате);

// Завершить, если пользователь щелкнул на кнопке Cancel

if (response != JFileChooser.APPROVE.OPTION) return;

// Иначе получить объект java.io.File, представляющий файл назначения

var file = filechooser.getSelectedFile;

// Запустить новый поток выполнения для загрузки url

new java.lang.Thread(function {

download(url,file); }).start;

}

catch(e) {

// Вывести диалог, если что-то пошло не так

JOptionPane.showMessageDialog(frame, е.message, "Exception",

JOptionPane.ERROR.MESSAGE);

}

});

// Использует java.net.URL и др. для загрузки содержимого URL и использует java.io.File

// и др. для сохранения этого содержимого в файле. Отображает ход выполнения загрузки

// в компоненте JProgressBar. Эта функция вызывается в новом потоке выполнения,

function download(url, file) {

try {

// Каждый раз, когда запускается загрузка очередного файла,

// необходимо добавить в окно новую строку для отображения URL,

// имени файла и индикатора хода выполнения операции

var row = Box.createHorizontalBox; // Создать строку

row.setBorder(padding); // Добавить отступы

var label = url.toString + ": ";// Отобразить URL

row.add(new JLabel(label)); // в компоненте JLabel

var bar = new JProgressBar(0, 100); // Создать полосу индикатора

bar.stringPainted = true; // Отобразить имя файла

bar.string = file.toString; // в полосе индикатора

row.add(bar);// Добавить индикатор в строку

col.add(row);// Добавить строку в колонку

frame.pack; // Изменить размер окна

// Здесь еще не известен размер загружаемого файла, поэтому изначально

// индикатор просто воспроизводит анимационный эффект

bar.indeterminate = true;

// Установить соединение с сервером и получить размер загружаемого

// файла, если это возможно

var conn = url.openConnection; // Получить java.net.URLConnection

conn.connect; // Подключиться и ждать заголовки

var len = conn.contentLength; // Проверить, получена ли длина файла

if (len) { // Если длина известна, тогда

bar.maximum = len; // настроить индикатор на вывод

bar.indeterminate = false; // процента выполнения задания

}

// Получить потоки ввода и вывода

var input = conn.inputStream; // Прочитать байты с сервера

  • Читать дальше
  • 1
  • ...
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: