Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
JavaFX.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
4.88 Mб
Скачать

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.

ПРАКТИЧНА ЧАСТИНА