Что такое 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();

    }
}

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

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

 

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

Что такое прокси-сервер: пояснение простыми словами, зачем нужны прокси

Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…

21.11.2024

Что такое PWA приложение? Зачем необходимо прогрессивное веб-приложение

Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…

19.11.2024

Как создать игру на телефоне: программирование с помощью конструктора

Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…

17.11.2024

Google Bard: эффективный аналог ChatGPT

В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…

14.11.2024

Скрипт и программирование: что это такое простыми словами

Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…

12.11.2024

Дедлайн в разработке: что это такое простыми словами

Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…

11.11.2024