Мы собрали новую статью по просьбам трудящихся под этим материалом. Да, JavaFX удаляется из последних версий JDK. Но есть трюки, которые вернут старый добрый инструмент. Смотри, как это сделать:
А теперь, когда всё установили и настроили, приступаем к видеокурсу :)
1. HelloWorld
Первый урок курса по традиции посвящен базису. JavaFX
– это инструмент для создания
кроссплатформенных UI-приложений. Первая особенность – наличие в
структуре приложения непривычных элементов: Scene
и Stage
, которые позволяют
создавать более гибкий и управляемый код. Другая фича – поддержка HTML
, CSS
и JS
.
Ты напишешь свое первое FX-приложение, а пользователи ОС Linux в конце ролика получат совет, как починить самый первый запуск.
2. Java Packager
В этом уроке ты узнаешь, как скомпилировать код, засунуть его в джарник и сделать самовыполняющийся "джава-архив" с программой. Все это можно сделать и напрямую из консоли, но иногда полезно иметь под рукой что-то автозапускаемое.
На выходе ты получишь архив, содержащий INF-файл с данными о джарнике и основной класс. Запуск для Windows осуществляется двойным кликом, а для Linux – из терминала.
3. Shapes
Здесь ты будешь учиться
рисовать фигуры в JavaFX
. Фигур может быть
много: круг, эллипс, треугольник и, как ни странно, текст – это тоже
фигура. Концепция проста, так что поняв, как это работает на
объектах из урока, ты сможешь рисовать и другие фигуры.
До появления FX
этими задачами занималась библиотека AWT
: если ты с ней знаком, тебе будет скучновато на
этой лекции.
4. Canvas
В предыдущем уроке рассматривался процесс создания фигур при помощи нативных методов. Здесь ты
узнаешь, как все это проделать на Canvas
.
Автор заранее подготовил метод с кучей действий для работы с разными фигурами. Занятный процесс оперирования графикой сопровождается поиском неисправности. Попробуй найти ее раньше ведущего ;)
5. Properties и binding
Речь
пойдет о биндинге и пропертис. Пропертисы – это обертки над классами: int –>
IntegerProperty
. Зачастую эти штуки используются при создании JavaBeans
.
Еще один удобный функционал – биндинг. Он позволяет менять одно значение при изменении другого.
В конце урока автор
рассматривает интересную и тесно связанную с биндингом тему – ChangeListener
.
6. Layout
Если ты знаком со Swing
, то понять это в разрезе JavaFX
не составит труда. Многофункциональный инструмент помогает размещать элементы на панели
создаваемого интерфейса программы. Существует несколько принципов размещения,
но автор рассмотрит только самые распространенные. Занятие подкрепляется
понятными примерами кода.
7. UI Controls
Возможно, ты уже знаком
с различными элементами вродеtextField
,
button
и
т. д., поскольку добавлял их на форму. В этой лекции автор остановится на нюансах работы с каждым из них. Будет представлен интерфейс со всеми
существующими элементами, которые можно использовать в своих целях.
8. Кастомный Control
Этот видос научит тебя
создавать кастомные контроллы – те, которые ты сам придумаешь. Возможности безграничны, особенно радует поддержка CSS
. Есть два варианта создания собственных элементов:
непосредственно силами Java
и FXML
.
Автор объяснит на
примере TextField
, как можно расширить
его функционал, создав свой собственный элемент для формы.
9. Обработка событий
Если ты давно хотел
разобраться, как работает процесс управления нажатиями и прочими событиями, то
пришел твой час. Основные события – это KeyEvent
, MouseEvent
,
ActionEvent
, а остальные используются реже (на досуге почитай и
потести другие ивенты).
Для начала нужен контролл, добавленный на форму. А дальше вешаем обработчик на нужный котролл и внутри метода пишем код. Все элементарно. Пробуй сам или повторяй по уроку.
10. Работа с изображениями
Довольно простая тема
(поначалу). Урок начинается с добавления картинки в основное окно приложения
через InputStream
и указания ссылки на объект. В качестве усложнения
задания будет предложен вариант просмотра/замены пикселей в исходном
изображении при помощи GetPixelReader
и PixelReader
/Writer
. Занятная тема, т. к. позволяет потренировать навыки и вспомнить Java Core
.
11. Анимация
Анимация в Java
реализуется достаточно просто, но понадобится много
кода. Лектор показывает подготовленную заранее программку, выводящую в окне
приложения элементарную анимацию.
Все завязано на
изменении KeyValue
для каждого параметра анимации: их может быть
несколько. В примере изменяется перемещение по области, длительность всей
анимации, реверс и бесконечное "воспроизведение".
12. Scene Builder
На этом уроке ты
узнаешь, что такое Scene Builder
и зачем он тебе нужен. Данный инструмент не
поставляется вместе с Java
, и его нужно
скачивать отдельно с официального сайта Oracle.
В окне билдера собраны
и удобно скомпонованы все элементы, присутствующие в JavaFX
. Все просто: выбирается элемент слева и
драгндропом переносится вправо, в контейнер. Изменять свойства каждого
добавленного элемента можно непосредственно в меню элемента.
Вся прелесть билдера в том, что сохраненную форму можно спокойно перенести в свой проект JavaFX
и там создать обвязку, обработку и прочее.
13. CSS
Ранее в лекциях
упоминалось о существовании CSS
в работе с JavaFX
. Пришло время разобраться! До появления JavaFX
был неудобный и
громоздкий Swing
, в котором кастомить
элементы можно было с огорчением и болью. FX
вобрал в себя все лучшее от HTML
и позволяет “по щелчку” изменять любое свойство
элемента.
В комплекте с JavaFX
идет набор стилей, которые можно взять и
прилепить к приложению быстро и легко. Либо на его основе сделать модификацию.
Это и будет темой урока.
14. FXML
Пытливый зритель
заподозрит неладное и задумается: "А чем Scene Builder
или чистая Java не подходит?". Самое главное – это удобство
использования и внесение изменений в XML-файлы без
перекомпиляции. Автор приводит объяснения из официального хелпа, чем одно лучше
другого.
Единственная проблема – обработка событий. Но все оказывается проще некуда.
15. Media
JavaFX
умеет проигрывать
музыку и видео. Лектор покажет простой и понятный способ
реализации такого функционала. Для этого нужен класс Media
, в который ты можешь передать URL или файл. А дальше все элементарно: добавляй
кнопки управления, оформляй окно проигрывателя и прочее.
С видео дела обстоят аналогично, но могут быть траблы с кодеками: на некоторых типах файлов есть лицензии, что может затруднить работу видеоплеера. В официальном мануале ты найдешь описание поддерживаемых форматов.
16. Отображение HTML и JavaScript в WebView
Пробуем работать с HTML
и JS
: в окошке JavaFX
будет выводиться HTML, Java
будет отдавать функции JS и
наоборот.
Для отображения HTML обычно
используется движок WebKit
и webView
. Эта штука может выводить инфу (loadContent
) из URL, строки или файла. С помощью WebView
можно работать с Web-элементами напрямую вплоть до выполнения JS-скрипта, который меняет кучу параметров и
перерисовывает страницу. Круто, правда?
17. Графики – Charts
В Java существует 6 типов графиков
и все они работают аналогично: создается график, в него кладется
инфа (зачастую используются списки), и все работает. В ролике автор использует в
качестве примера Pie chart
. Видос короткий, но простой и понятный, позволяющий
сразу что-то наваять.
18. Работа с 3D
В уроке много кода, но автор постепенно объяснит суть каждого куска. Тренироваться ты будешь на цилиндре, а другие объекты разберешь самостоятельно по аналогии.
JavaFX
позволяет менять различные параметры, вплоть до
градиента окраски объекта, а эффект трехмерности достигается с помощью
инструмента PerspectiveCamera
.
19. Collections
В коллекциях JavaFX
есть интерфейсы: ObservableList
,
ObservableMap
, ListChangeListener
, MapChangeListener
. Это обычные листы и мапы, но они позволяют
отлавливать изменения и реагировать на события.
Лектор показывает, как срабатывает реакция на изменение данных в списке.
20. Concurency
Как и в случае с
коллекциями, в теме многопоточности тоже существует несколько классов и
интерфейсов, реализующих и работающих с многопоточностью. Такой подход
позволяет более эффективно работать связке между приложением FX и
потоками. JavaFX
предоставляет свои классы Task
и Service
из пакета javafx.concurrent
. В Task
описывается конкретное действие, которое
требуется выполнить, а Service
запускает все это счастье.
21. Swing и Fx
В завершающем уроке ты
научишься добавлять в Swing
элементы из JavaFX
. В Java
есть классная штука – JFXPanel
, которую нужно добавить в контейнер (Frame
), указать все необходимые параметры, добавить
группу элементов и сцену. Подробнее об этом в последнем уроке.
Комментарии