Что такое JavaFX и как он поможет при создании приложений

Мария Бердило

JavaFX это набор инструментов для создания кроссплатформенных приложений на основе языка программирования Java. Этот инструментарий был создан с целью упростить написание приложений. Другими словами, JavaFX — это декларативный язык сценариев со статической типизацией.

Особенности JavaFX:

  • Его структура и API-интерфейсы предназначены для создания анимации, 2D- и 3D-геометрии, диаграмм, специальных эффектов, цветовых градиентов, графических элементов управления и простых манипуляций с мультимедиа, включая аудио, видео и изображения. Итог: вы можете создавать сложный и богатый контент с помощью JavaFX намного проще, чем используя Swing и Java 2D.
  • Визуализация графики JavaFX пользуется возможностями аппаратного ускорения. Это обеспечивает хорошую производительность рендеринга графики и анимации.
  • Вы можете встраивать содержимое JavaFX в панели Swing с помощью JFXPanel. Магия этого специализированного компонента Swing позволяет создавать сложные приложения платформы NetBeans.

Немного истории

JavaFX задумывался как декларативный язык сценариев (JavaFX Script), который был бы построен на основе Java. Хотя разработчикам нравилась простота декларативного сценария, было сложно интегрировать JavaFX Script с существующими приложениями Swing. 

JavaFX 2.0 был выпущен в 2011 году и был основан на API Java. Уже в Java 7 JavaFX был включен в стандартный выпуск, а начиная с Java 8, который включает в себя возможности 3D, все библиотеки JavaFX (файлы JAR) включены в стандартный путь к классам.

Это означает, что JavaFX теперь является частью стандарта Java при загрузке Java Development Kit (JDK).

Хотя вы, безусловно, можете использовать API JavaFX в традиционном стиле кодирования Java, JavaFX также предоставляет FXML — декларативный язык разметки XML, который упрощает работу с графическими компонентами в приложении.

К примеру, Scene Builder — это автономное приложение, которое генерирует разметку FXML. С помощью Scene Builder вы перетаскиваете мышкой элементы управления и формы для создания интерфейса в визуальном редакторе. Эти параметры упрощают создание сложных интерфейсов и работу с их дизайном.

Вы также можете стилизовать свое приложение JavaFX с помощью CSS — стандарта, который используется многими дизайнерами.

Составляющие окна JavaFX

Как правило, JavaFX состоит из трех основных компонентов: Stage, Scene и Nodes, как показано на диаграмме ниже.

Диаграмма: структура JavaFX

Stage — это вышестоящее окно, в котором мы можем вводить все элементы графического интерфейса. Он содержит все объекты приложения JavaFX и представлен классом Stage пакета javafx.stage. По сути он и является точкой входа

Scene — это физическое содержимое приложения JavaFX. В нем находится все содержимое графы Stage. Класс Scene пакета javafx.scene представляет объект сцены. В одном экземпляре объект сцены добавляется только к одному этапу.

Node визуальное содержимое Scene. Сюда могут входить:

  • геометрические объекты (как 2D, так и 3D), а также такие фигуры, как прямоугольник, круг, многоугольник;
  • элементы, с которыми взаимодействуют пользователи: кнопки, поля выборов, разнообразные флажки и многое другое;
  • панели — сюда относятся всяческие панели сетки и границ;
  • объекты мультимедиа — изображения, видео и аудио.

Установка JavaFX

Для начала установите последнюю версию JDK с официального сайта. Затем проверьте, что после установки у вас по умолчанию используется последняя версия: системная переменная JAVA_HOME должна хранить путь к папке bin установленной версии JDK, как на картинке ниже.

Системная переменная JAVA_HOME должна хранит путь к папке bin установленной JDK

После этого можно скачивать последнюю JavaFX SDK. Это можно сделать вот здесь. И приступать к созданию своего первого проекта. 

Модули JavaFX

После того, как вы скачали все необходимые программы, вы можете открыть папку lib и увидеть там модули, которые и представляют собой JavaFX.

Модули JavaFX

 Давайте рассмотрим описание основных функций модулей JavaFX:

  • javafx.fxml поможет в определении функционала для работы с FXML;
  • javafx.web определяет функционал WebView;
  • javafx.media нужен для работы с мультимедиа;
  • javafx.swing внедряет элементы Swing;
  • javafx-swt работает с SWT;
  • javafx.controls определяет элементы управления, диаграммы и скины;
  • javafx.base определяет базовый функционал фреймворка.

Пример использования JavaFX

Давайте попробуем написать код, при выполнении которого появится простейшее окно Hello World! 

package helloworld;

import javafx.application.Application;

import javafx.event.ActionEvent;

import javafx.event.EventHandler;

import javafx.scene.Scene;

import javafx.scene.control.Button;

import javafx.scene.layout.StackPane;

import javafx.stage.Stage;

public class HelloWorld extends Application {

    public static void main(String[] args) {

        launch(args);
    }    

    @Override

    public void start(Stage primaryStage) {

        primaryStage.setTitle("Hello World!");

        Button btn = new Button();

        btn.setText("Say 'Hello World'");

        btn.setOnAction(new EventHandler<ActionEvent>() {

            @Override

            public void handle(ActionEvent event) {

                System.out.println("Hello World!");
            }
        });


        StackPane root = new StackPane();

        root.getChildren().add(btn);

        primaryStage.setScene(new Scene(root, 300, 250));

        primaryStage.show();

    }
}

В результате все работает, как мы и задумывали:

Результат работы кода

 

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023