JavaFX для начинающих. Создание графических приложений на Java. Исходные коды обновлены: апрель 2019 г.
                                                            Нужно ли вам изучать JavaFX. Обычно новички пытаются сразу перейти в раздел веб разработки или Android, т.к. это более актуально и престижно.
Но тем самым допускают ошибку - у них мало практики по основам Java, ООП, базам данных.
Чтобы закрыть этот пробел - вы можете создавать графические JavaFX приложения.
Вместо того, чтобы тренироваться в консольных приложениях, интереснее и полезнее получать практику на красивых UI приложениях.
Вам не нужно досконально изучать каждый раздел JavaFX (если конечно не требуется по работе или проекту). Достаточно понять событийную модель и основные компоненты - этого будет достаточно, чтобы создавать программы средней сложности, работающие с БД.
Красивые desktop приложения
Многие программисты жаловались, что desktop приложения на Java получаются некрасивыми и не такими интерактивными, как хотелось бы.
Тогда разработчики языка Java придумали новый фреймворк JavaFX, где исправили все недостатки и добавили новые возможности.
Теперь вы сможете создавать красивые и интерактивные desktop приложения и не стыдиться своего результата.
К тому же фреймворк JavaFX включает в себя большое количество готовых компонентов, в том числе сторонних, на все случаи жизни.
Это действительно один из популярных вариантов по созданию насыщенных настольных Java приложений. 
JavaFX - это новое направление, которое позволит вам создавать красивые desktop приложения на Java
Чем JavaFX отличается от Swing?
Основное отличие - в удобстве и возможностях JavaFX по сравнению с Swing. Теперь вы можете использовать концепцию разделения внешнего вида от функционала (идея MVC - Model View Controller).
Разработка приложения упрощается, количество готовых компонентов увеличилось. Если вы помните, на Swing было очень тяжело написать приложение с интересным дизайном, приходилось выполнять определенные трюки.
Здесь же все намного проще. Поэтому многие разработчики не задумываясь переходят с Swing на JavaFX.
Означает ли это, что Swing можно забыть?
Нет, вы можете использовать Swing совместно с JavaFX (особенно это нужно для старых проектов для более плавного перехода).
Либо, если создаете с нуля, можете программировать только на JavaFX, а Swing не использовать. В этом случае вы получаете все преимущества нового фреймворка, без привязки к старому.
Обычно при внедрении JavaFX в старые Swing приложения сначала заменяют компоненты один за другим, а в конце уже полностью переносят проект.
Видеоуроки
Каждый урок выполнен в формате видео, которое можно переносить на разные устройства и пересматривать в любом месте
Готовые исходные коды
Обучайтесь на готовых примерах - открывайте исходные коды по всем урокам и заданиям, запускайте в IntelliJ IDEA
Задания с решениями
Закрепление по всем пройденным темам уроков - выполняйте домашние задания и сравнивайте полученный результат
Основные темы уроков
Основы построения графического интерфейса
- Проектирование GUI
 - Структура приложения JavaFX
 - Создание интерфейса 
 - Резиновый макет
 - Модальные окна
 - Инструмент SceneBuilder
 - Объекты Stage и Scene
 - Использование CSS
 - Модальные окна
 - Использование FXML
 - Создание макетов
 - Дерево элементов
 
Контроллеры, действия пользователя
- Обработка событий
 - Отображение данных в таблице
 - Редактирование данных
 - Аннотация FXML
 - Использование ObservableList
 - Инициализация компонентов
 - Оптимизация UI
 - Библиотека openjfx-dialogs
 - Валидация данных
 - Класс StringProperty
 
Кастомизация, локализация, добавление компонентов
- Локализация приложения
 - Сторонние библиотеки компонентов
 - Переключение локали
 - Сравнение Swing и JavaFX
 - Плюсы и минусы
 - Примеры приложений
 - Использование Locale
 - i18n и i10n
 - Создание своих компонентов
 - Использование шаблона Observer
 
Работа с БД из JavaFX приложения
- Проектирование таблицы БД
 - Заполнение таблицы из БД
 - Изменение, добавление, удаление данных
 - Поиск данных
 - Автоматические обновление
 - Модальные окна для редактирования
 - Выполнение SQL запросов
 - Переключение реализаций ООП
 - Добавление абстракного слоя
 
Стилизация и добавление дизайна
- Изменение дизайна приложения
 - Разбор структуры компонентов
 - Использование CSS
 - Отладка внешнего вида
 - Работа с селекторами CSS
 - Изменение стандартных компонентов
 - Разделение UI и дизайна
 
Сравните 2 реализации одной задачи
Реализация на Swing
Здесь применяются "стандартные" технологии, ограниченные по возможностям и красоте. Из-за чего все desktop приложения Java выглядят страшновато.
Сейчас многие активное пересаживаются со Swing на другие решения, т.к. постоянно упираются в потолок из-за ограниченности и "деревянности" приложений.
Реализация на JavaFX
JavaFX - новое слово в развитие desktop приложений на Java: новые библиотеки, украшения и скины. Технология позволяет разнообразить внешний вид на любой вкус. Ваши приложения больше не будут выглядеть древними.
* Исходный код этого MP3 плеера с видеообзором вы также получите в виде бонуса к курсу
Чему вы научитесь
Вы научитесь создавать приложения JavaFX, узнаете в чем разница между этой технологией и Swing.
Создадите проект для закрепления.
Поймете как взаимодействовать с пользователями, заполнять данными таблицы, редактировать данные, добавлять несколько языков в приложение и многое другое.
Какое приложение вы разработаете с нуля?
Адресная книга
После изучения основ JavaFX (построение интерфейса, компоненты, связывание с кодом) вы разработаете первый проект "Адресная книга" - для закрепления всех полученных знаний.
Что вы будете практиковать:
- - работа с компонентами
 - - редактирование, удаление, добавление
 - - использование сторонних компонентов
 - - связывание контроллеров, GUI, компонентов
 - - диалоговые окна, валидации
 - - заполнение таблицы с помощью специальных классов
 - - применение принципов ООП
 
и многое другое...