JavaScript. Подробное руководство, 6-е издание
Шрифт:
var version = String(java.lang.System.getPropertyC'java.version"));
12.1.1. Пример использования Rhino
В примере 12.1 приводится простое приложение для интерпретатора Rhino, демонстрирующее большую часть возможностей и приемов, описанных выше. Пример использует пакет javax.swing со средствами построения графических интерфейсов, пакет java.net с инструментами организации сетевых взаимодействий, пакет java.io потокового ввода/вывода и инструменты языка Java многопоточного выполнения для реализации простого приложения менеджера
Пример 12.1. Приложение менеджера загрузки для Rhino
/*
* Приложение менеджера загрузки с простым графическим интерфейсом,
* построенным средствами языка Java
*/
// Импортировать графические компоненты из библиотеки Swing
// и несколько других классов
importPackage(javax.swing);
importClass(javax.swing.border.EmptyBorder);
importClass(java.awt.event.ActionListener);
importClass(java.net.URL);
importClass(java.io.FileOutputStream);
importClass(java.lang.Thread);
// Создать графические элементы управления
var frame = new JFrame("Rhino URL Fetcher"); // Окно приложения
var urlfield = new JTextField(30); // Поле ввода URL
var button = new JButton("Download"); // Кнопка запуска загрузки
var fil-echooser = new JFileChooser; // Диалог выбора файла
var row = Box.createHorizontalBox; // Контейнер для поля и кнопки
var col = Box.createVerticalBox; // Для строки и индикатора хода
// выполнения операции
var padding = new EmptyBorder(3.3,3,3); // Отступы для строк
// Объединить все компоненты и отобразить графический интерфейс
row.add(urlfield); //
Поместить поле ввода в строку
row.add(button); // Поместить кнопку в строку
col.add(row);// Поместить строку в колонку
frame.add(col); // Поместить колонку во фрейм
row.setBorder(padding); // Добавить отступы вокруг строки
frame.pack; // Определить минимальный размер
frame.visible = true; // Вывести окно
// Эта функция вызывается, когда в окне что-то происходит,
frame.addWindowListener(function(e, name) {
// Если пользователь закрыл окно, завершить приложение,
if (name === "windowclosing") // Rhino добавляет аргумент name
java.lang.System.exit(0);
});
// Эта функция вызывается, когда пользователь щелкает на кнопке
button.addActionListener(function {
try {
// Создать объект java.net.URL для представления URL источника.
// (Автоматически будет проверена корректность ввода пользователя)
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) {
// Вывести диалог, если что-то пошло не так
Поделиться:
Популярные книги
Князь Андер Арес 4
4. Андер Арес
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
попаданцы
5.00
рейтинг книги
Афганский рубеж 4
4. Рубеж
Фантастика:
попаданцы
альтернативная история
6.00
рейтинг книги
Память льда
3. «Малазанская империя»
Фантастика:
фэнтези
6.00
рейтинг книги
Неучтенный элемент. Том 11
11. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Камень. Книга 3
3. Камень
Фантастика:
фэнтези
боевая фантастика
8.58
рейтинг книги
Двойник короля 12
12. Двойник Короля
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Распутье
Сибириада
Проза:
военная проза
историческая проза
5.00
рейтинг книги
Черный Маг Императора 18
18. Черный маг императора
Фантастика:
юмористическое фэнтези
аниме
сказочная фантастика
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Звездная Кровь. Экзарх III
3. Экзарх
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Двойник короля 14
14. Двойник Короля
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Газлайтер. Том 26
26. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мечник Вернувшийся 1000 лет спустя
1. Вернувшийся мечник
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Школа пластунов
Одиночка
Фантастика:
боевая фантастика
5.00
рейтинг книги
Сердце Дракона. Том 11
11. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
6.50