Наикратчайшая информация

Ключевые особенности настройки Gradle можно посмотреть в документации на openjfx.io. Пример настроенного проекта можно посмотреть в примере на GitHub

Развёрнутое описание

В современный JDK библиотека JavaFX не входит, поэтому её необходимо указывать в качестве зависимости для каждого проекта отдельно. Вы можете использовать одно из руководств на openjfx.io, если выбранные технологии для вас не подходят.

Для управления зависимостями в Java-проектах используются системы Maven и Gradle. Каждая из них позволяет выполнять все задачи по управлению жизненным циклом проектов: скачивать зависимости, передавать параметры компиляции, осуществлять запуск и пакетирование результатов. Выбор между ними зависит от деталей выполняемого проекта и предпочтений конкретной команды по разработке ПО.

Данное руководство использует Gradle ввиду знакомства составителя с данной системой сборки.

1. Создайте Gradle-проект в IDEA

  1. Выберите пункт меню File->New->Project…
  2. Выберите тип проекта Gradle.

    Окно выбора типа проекта

  3. В появившемся окне заполните информацию о проекте

    1. Заполните имя проекта, например FXAppOne
    2. Раскройте информацию об артефакте, Artifact coodrinates и укажите дополнительные параметры.
    3. Рекомендуется указать GroupId. Для нашего проекта корректной будет ru.ac.uniyar.apps.fxappone.

    Заполненное окно должно выглядеть таким образом:

    Параметры проекта

  4. Нажмите на кнопку Finish.

2. Добавьте стартовый класс в проект

  1. Слева в структуре проекта раскройте папки src, main.
  2. На папке main нажмите правой кнопкой и выберите пункт меню New->Java Class.
  3. В появившемся окне введите имя класса ru.ac.uniyar.apps.fxappone.Main и нажмите Enter.

    Название класса

  4. В созданном классе добавьте метод main:

    public static void main(String args[]) {
        System.out.println("It works!");
    }
    
  5. Откройте файл build.gradle и внесите в него следующие изменения:

    1. В секцию plugins добавьте:

      id 'application'
      
    2. В корне файла укажите имя стартового класса. Оно должно совпадать с созданным ранее классом:

      mainClassName = "ru.ac.uniyar.apps.fxappone.Main"
      
    3. В качестве версии языка Java укажите 11:

      sourceCompatibility = 11
      

    Полностью файл конфигурации будет выглядеть следующим образом:

    plugins {
        id 'application'
        id 'java'
    }
    
    group 'ru.ac.uniyar.apps.fxappone'
    version '1.0-SNAPSHOT'
    
    sourceCompatibility = 11
    
    mainClassName = 'ru.ac.uniyar.apps.fxappone.Main'
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        testCompile group: 'junit', name: 'junit', version: '4.12'
    }
    
  6. Загрузите изменения из build.gradle-файла в IDEA.
    1. Откройте панель Gradle справа.
    2. Нажмите на значок из вращающихся стрелочек, Reimport All Gradle Projects.

    IDEA считает информацию из build.gradle-файла. Если файл был корректно обработан, тогда окно будет иметь следующее состояние:

    Состояние Gradle-импорта

  7. Запустите проект.
    1. Откройте панель Gradle справа.
    2. Выберите пункт Application->Run
    3. Нажмите на него 2 раза - он запустится.

    В будущем можно будет запускать данную задачу стандартным образом, с помощью сочетания клавиш Shift+F10.

3. Добавьте библиотеку Java FX в Gradle-проект

  1. Откройте файл build.gradle и отредактируйте его следующим образом:

    1. В секцию plugins добавьте

      id 'org.openjfx.javafxplugin' version '0.0.8'
      
    2. Добавьте новую секцию javafx со следующими настройками:

      javafx {
        version = "13"
        modules = [ 'javafx.controls', 'javafx.fxml' ]
      }
      

    Финальный build.gradle должен выглядеть следующим образом:

    plugins {
        id 'application'
        id 'java'
        id 'org.openjfx.javafxplugin' version '0.0.8'
    }
    
    group 'ru.ac.uniyar.apps.fxappone'
    version '1.0-SNAPSHOT'
    
    sourceCompatibility = 11
    
    mainClassName = 'ru.ac.uniyar.apps.fxappone.Main'
    
    repositories {
        mavenCentral()
    }
    
    javafx {
        version = '13'
        modules = [ 'javafx.controls', 'javafx.fxml' ]
    }
    
    dependencies {
        testCompile group: 'junit', name: 'junit', version: '4.12'
    }
    
  2. Импортируйте настройки Gradle в IDEA как это было сделано в предыдущем разделе, пункт 6.
  3. Замените файл описания класса ru.ac.uniyar.apps.fxappone.Main на следующее:

    package ru.ac.uniyar.apps.fxappone;
    
    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.control.Label;
    import javafx.scene.layout.StackPane;
    import javafx.stage.Stage;
    
    public class Main extends Application {
    
        @Override
        public void start(Stage stage) {
            String javaVersion = System.getProperty("java.version");
            String javafxVersion = System.getProperty("javafx.version");
            Label label = new Label("Hello, JavaFX " + javafxVersion + ", running on Java " + javaVersion + ".");
            Scene scene = new Scene(new StackPane(label), 640, 480);
            stage.setScene(scene);
            stage.show();
        }
    
        public static void main(String[] args) {
            launch();
        }
    }
    
  4. Запустите приложение.

В результате у вас должно открыться окно со следующим содержимым:

Окно приложения JavaFX