
- •3.1 Лабораторна робота № 1. Створення JavaFx додатку. Авторизація користувачів.
- •Java Persistence api
- •3.1.1. Необхідне програмне забезпечення
- •3.1.2. Налаштування проекту JavaFx-додатку
- •3.1.3. Підключення бази даних
- •3.1.4. Створення моделей та їх маппінг за допомогою jpa
- •3.1.5. Створення допоміжного класу для роботи з моделями
- •3.1.6. Впровадження логіки авторизації користувача
- •3.2 Лабораторна робота № 2. Робота з медіа. Реалізація crud за допомогою jpa та TableView.
- •Медіа-програвач
- •Табличне представлення данних
- •3.2.1 Вдосконалення коду додатка
- •3.2.2 Створення інтерфейсу додатка
- •3.2.3 Створення медіа програвача
- •3.2.4 Впровадження можливості адміністрування користувачів
- •3.3 Лабораторна робота № 3. Використання вбудованого браузеру, будування графіків та створення анімації.
- •Акордеон
- •Анімація у JavaFx
- •Графіки
- •3.3.1 Інтегрування веб-браузеру до проекту
- •3.3.2 Створення графіків
- •3.3.3 Використання елементу акордіон для створення альтернативного варіанту панелі інструментів
- •3.3.4 Створення анімації кнопок
- •3.4 Лабораторна робота № 4. Технологія drag-and-drop у JavaFx-додатках. Використання стилів.
- •Drag-and-Drop
- •Стилювання додатку за допомогою css
- •3.4.1 Drag-and-Drop
- •3.4.2 Додавання можливості стилювання додатку
- •3.4.3 Створення стилів
- •3.5 Лабораторна робота № 5. Робота з JavaFx Scene Builder. 3-d трансформація у JavaFx. Розгортання додатку.
- •JavaFx Scene Builder
- •Трансформація у JavaFx
- •Розгортання JavaFx додатків
- •3.5.1 JavaFx Scene Builder
- •3.5.2 Створення логіки додатка
- •3.5.3 Розгортання додатка
3.1 Лабораторна робота № 1. Створення JavaFx додатку. Авторизація користувачів.
Мета роботи: створити основу для повноцінного JavaFX додатку, реалізувати авторизацію користувачів, отримати базові навички розробки з використанням FXML, Java Persistence API (JPA), баз даних та NetBeans IDE.
КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ
FXML
FXML — це мова з підтримкою сценаріїв, заснована на мові розмітки XML і призначена для опису інтерфейсів користувачів. Він дозволяє робити це відокремлено від логіки додатку, що дозволяє розробляти додатки за дуже популярним при веб-розробці шаблоном MVC (Model, View, Control) (Модель, Вигляд, Контролер).
В FXML та XML елементи представляють одне із наступних:
Екземпляр класу;
Властивість екземпляру класу;
«Статичну» властивість;
Блок «визначення»;
Блок скриптового коду.
Для імпорту класів використовують інструкцію процесу "import". При імпорті класу потрібно вказувати всю ієрархію пакетів. Наприклад:
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.*?>
Тег <fx:include> створює об’єкт з FXML розмітки, прописаної в іншому файлі. Наприклад:
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<VBox xmlns:fx="http://javafx.com/fxml">
<children>
<fx:include source="my_button.fxml"/>
</children>
</VBox>
І якщо my_button.fxml містить наступне:
<?import javafx.scene.control.*?>
<Button text="My Button"/>
то в результаті граф сцени буде містити VBox як кореневий об’єкт з однією кнопкою Button як child node — дочірній вузол.
Тег <fx:reference> створює посилання до іншого існуючого елементу. Наприклад:
<ImageView>
<image>
<fx:reference source="myImage"/>
</image>
</ImageView>
Елементи, у яких імена тегів починаються з рядкових букв, є властивостями об’єктів. Це може бути:
Сеттер властивості;
Тільки зчитуваний список (list) властивостей;
Тільки зчитувана карта (map) властивостей;
Обробник подій;
Якщо написати такий код:
<?import javafx.scene.control.Label?>
<Label>
<text>Hello, World!</text>
</Label>
то його можна переписати простіше за допомогою сетера властивостей:
<?import javafx.scene.control.Label?>
<Label text="Hello, World!"/>
Приклад використання властивості обробника подій:
<VBox fx:controller="com.foo.MyController"
xmlns:fx="http://javafx.com/fxml">
<children>
<Button text="Click Me!" onAction="#handleButtonAction"/>
</children>
</VBox>
І відповідний Java клас обробника події:
package com.foo;
public class MyController {
public void handleButtonAction(ActionEvent event) {
System.out.println("You clicked me!");
}
}
Зазначимо, що fx:controller потрібно визначати у кореневого елемента.
За допомогою тега <fx:script> можна імпортувати скрипти в FXML файл. Підтримуються всі скриптові мови JVM, включаючи JavaScript, Groovy, Clojure та багато інших.
Java Persistence api
Java Persistence API (JPA) забезпечує підтримку збереження даних. JPA покриває області:
• безпосередньо API, заданий в пакеті javax.persistence;
• платформо-незалежна об'єктно-орієнтована мова запитів Java Persistence Query Language;
• метаінформація, що описує зв'язок між об'єктами;
• генерація Data Definition Language (DDL) для сутностей.
В Java Persistence API для роботи з об'єктами існує спеціальний інтерфейс — EntityManager, в якому визначено всі дії, які можна виконати над об'єктом (оголошені методи для роботи зі збереженими даними).
API, що входить з версії Java 5 до складу платформ Java SE і Java EE, надає можливість зберігати в зручному вигляді Java-об'єкти в базі даних.
Існує декілька реалізацій цього інтерфейсу, одна з найпопулярніших використовує для цього Hibernate.
ПРАКТИЧНА ЧАСТИНА