Учебник по JavaFX: начало работы

Привет, Хабр! Представляю вашему вниманию перевод статьи «JavaFX Tutorial: Getting started» автора Vojtech Ruzicka.

Как настроить и начать работать с JavaFX, с помощью Maven, Gradle или JavaFX SDK.

Все посты в серии JavaFX:

  • Учебник по JavaFX: начало работы
  • Учебник по JavaFX: Привет, мир!
  • Учебник по JavaFX: FXML и SceneBuilder
  • Учебник по JavaFX: основные макеты
  • Учебник по JavaFX: расширенные макеты
  • Учебник по JavaFX: CSS стилизация
  • Установка Java
    JavaFX, конечно, требует, чтобы у вас был установлен JDK. Получение необходимых зависимостей различается для разных версий Java.

    JavaFX был представлен как часть выпуска Java 8. Однако позже он был удален из JDK и
    перенесен в отдельный модуль в Java 11.

    Это означает, что если вы ориентируетесь на Java 8-10, у вас есть все необходимые зависимости как часть вашего JDK уже. Ура! Если вы используете более новую версию Java — то есть 11+, вам нужно получить зависимости отдельно.

    Maven
    Получение и управление зависимостями вручную довольно неудобно, и в реальном приложении Вы бы редко так делали. Гораздо лучше использовать систему управления зависимостями, такую как Maven или Gradle. Таким образом, вы можете просто объявить, какие зависимости вы используете и какие версии, а система позаботится об остальном.

    Архетип Maven
    Конечно, вы можете настроить свой проект Maven вручную, с нуля. Тем не менее, вы можете предпочесть более удобный способ создания структуры и содержания базового проекта для вас с помощью Maven.

    Maven имеет понятие архетипов, которое по существу означает, что вы можете создавать различные типы проекты из шаблона. Существуют многочисленные архетипы для различных типов проектов, и к счастью, есть пара для JavaFX. Архетип, который вы можете выбрать, зависит от того, какую версию Java вы используете.

    Вы можете прочитать больше об архетипах Maven в следующем посте: Maven archetypes tutorial.

    Архетип Java 8
    Вы можете использовать com.zenjava:javafx-basic-archetype, или вы можете найти другие архетипы самостоятельно, если этот вам не подходит.

    Вы можете легко сгенерировать проект из командной строки с помощью Maven, используя указанный выше архетип:

    mvn archetype:generate -DarchetypeGroupId=com.zenjava -DarchetypeArtifactId=javafx-basic-archetype
    Кроме того, вы можете создать новый проект Maven из архетипа прямо в вашей IDE.

    Архетип Java 11
    Для Java 11 вы можете использовать org.openjfx: javafx-archetype-simple.

    Для создания проекта просто запустите:

    mvn archetype:generate -DarchetypeGroupId=org.openjfx -DarchetypeArtifactId=javafx-archetype-simple
    Ручная настройка Maven
    Если вы хотите больше контроля, вы можете настроить свой проект Maven вручную, не генерируя его из архетипа.

    Для начала вам понадобятся два компонента. Первый — Maven Plugin для Java FX.

    Просто добавьте следующее в ваш pom.xml:

    <build>
    <plugins>
    <plugin>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-maven-plugin</artifactId>
    <version>0.0.3</version>
    <configuration>
    <mainClass>com.example.App</mainClass>
    </configuration>
    </plugin>
    </plugins>
    </build>

    Обратите внимание, что <mainclass> должен указывать на ваш основной класс, который имеет метод main и расширяет javafx.application.Application. Мы расскажем об этом в следующей статье серии.

    Вторая часть добавляет зависимость для элементов управления JavaFX:

    <dependency>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-controls</artifactId>
    <version>11.0.2</version>
    </dependency>
    Gradle
    В настоящее время Gradle не поддерживает создание проектов непосредственно из архетипов .

    Вы можете использовать неофициальный плагин Gradle Archetype и использовать архетипы Maven, упомянутые выше.
    Кроме того, вы можете создать свой проект с помощью Maven из архетипа, а затем преобразовать его в проект Gradle с помощью следующей команды в каталоге, содержащем ваш pom.xml:

    gradle init

    Ручная настройка Gradle
    Как и в случае ручной настройки Maven, вам нужно добавить плагин JavaFX:

    plugins {
    id ‘application’
    id ‘org.openjfx.javafxplugin’ version ‘0.0.8’
    }
    И зависимость для элементов управления:

    javafx {
    version = "11.0.2"
    modules = [ ‘javafx.controls’ ]
    }
    JavaFX SDK
    Есть еще одна возможность использовать JavaFX локально. Вы можете скачать JavaFX SDK. Он содержит все необходимые библиотеки, которые вы можете затем связать с проектом в вашей IDE или добавить в classpath.

    Это может быть полезно, когда вы не знакомы с Gradle или Maven и просто для локальной разработки.

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

    С помощью этой опции вы можете сгенерировать проект без Maven/Gradle в вашей IDE, который содержит все необходимые файлы. В IntelliJ IDEA вы можете просто перейти на:

    File → New → Project → JavaFX
    Дополнительное чтение
    Hello World JavaFX application source code — Gradle
    Hello World JavaFX application source code — Maven
    JavaFX 13 and IntelliJ
    JavaFX 13 and NetBeans
    JavaFX 13 and Eclipse

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

    Оставить комментарий