Лабораторная работа: Реализация многопоточности в JavaFX — КиберПедия 

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Лабораторная работа: Реализация многопоточности в JavaFX

2022-10-10 60
Лабораторная работа: Реализация многопоточности в JavaFX 0.00 из 5.00 0 оценок
Заказать работу

Итак! У нас где-то 30 минут на лабораторную работу. Потом пообедаем. А потом скажете, сколько вам нужно еще времени.

Упражнение 1 (JavaFX). Задача: реализовать асинхронное выполнение операции для приложения JavaFX с отображением прогресса.   - Откройте проект из каталога \Лабы Java2\3-JavaFX\Lab2\synkVersion\... - Откройте файл FindTask.java. - Добавьте наследование класса FindTask от класса Task<Void>. - Закомментируйте синхронный метод “doWork()”. - Создайте в классе коллекцию LinkedList состящую из строк и с именем “list”. - Переопределите метод “call()” унаследованный от класса Task<Void>. В этом методе напишите код для запуска поиска файлов на диске: · Создайте объект класса “File” с именем “file”. Используйте параметр “path” при создании этого объекта; · Проверьте, что объект содержит имя каталога, и если да, то вызовите метод “findIn(file)”. · Верните null - Переопределите метод “cancelled()” унаследованный от класса Task<Void>. Данный метод вызывается при отмене асинхронной операции. Добавьте в метод следующий код:            items1.add(“canceled by user....”);            updateScene(); - Переопределите метод “succeeded()” унаследованный от класса Task<Void>. Метод вызывается при успешном окончании асинхронной операции. Добавьте в метод следующий код:            items1.addAll(list);            items1.add(“finded ”+items1.size()+” files”);            updateScene(); - Создайтеметод “void updateScene()”. Добавьте в метод следующий код: · Вызовите унаследованный метод “updateProgress()” с параметрами SIZE и SIZE, что означает полное выполнение/отмена асинхронной работы; - В методе findIn(): · после объявления массива “files” проверьте, что была произведена отмена асинхронной операции и если да, то завершите этот метод; · в операторе if-else измените имя коллекции на “list”; · в конце метода вызовите “updateProgress()” с параметрами list.size() и SIZE.   - Откройте файл GridPaneController.java. - Объявите приватную переменную класса “Task” и с именем “task” в классе контроллера. - В методе “btnFindClick()”: · инициализируйте ссылку “task” созданным объектом класса “FindTask” с параметрами items, path, end. Уберите вызов метода doWork(); · ниже добавьте код для привязки свойства “progressProperty()” объекта “barId” к соответствующему свойству объекта “task”. Свойство progress теперь привязано, а следовательно нельзя вызывать на нём метод setProgress(). Закомментируйте все вызовы метода setProgress() в этом классе. · послекомментария //runasynkTaskinconcurrentversionнапишитекод: Thread thread=new Thread(task); thread.setDaemon(true); thread.start(); - В методе ”btnCancelClick()” добавьте код отмены асинхронной операции:            if (task!=null) task.cancel(); - Запустите приложение и нажмите кнопку с надписью “Find”.

Был код такой:

 

Рабочая версия:

 

Остальные модули не изменились.

Модуль 4. Web-приложения Java


Поделиться с друзьями:

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.006 с.