Первая программа на JavaFX

Последнее обновление: 23.09.2021

Создадим первую самую простейшую программу на JavaFX. Вначале определим на жестком диске каталог для хранения файлов с исходным кодом. Допустим, в моем случае это будет каталог C:/javafx.

В этом каталоге создадим файл Main.java и определим в нем следующий код:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.Group;
import javafx.scene.text.Text;
 
public class Main extends Application{
     
    public static void main(String[] args) {
         
        launch(args);
    }
     
    @Override
    public void start(Stage stage) {
         
        // установка надписи
        Text text = new Text("Hello METANIT.COM!");
        text.setLayoutY(80);    // установка положения надписи по оси Y
        text.setLayoutX(80);   // установка положения надписи по оси X
         
        Group group = new Group(text);
         
        Scene scene = new Scene(group);
        stage.setScene(scene);
        stage.setTitle("JavaFX Application");
        stage.setWidth(300);
        stage.setHeight(250);
        stage.show();
    }
}

Вкратце разберем этот класс. Главный класс приложения JavaFX должен наследоваться от класса javafx.application.Application. Этот класс имеет один абстрактный метод, который нам нужно реализовать:

public void start(Stage stage) {}

В этот метод в качестве параметра передается объекта Stage, который представляет пользовательский интерфейс. Например, на десктопах Stage будет представлять графическое окно. При запуске приложения, когда среда JavaFX будет вызывать данный метод и передавать в него объект Stage.

Что нам нужно для создания графического интерфейса? Прежде всего нам нужны различные визуальные элементы, например, кнопки, текстовые поля, списки, изображения и так далее. JavaFX предоставляет большой набор встроенных визуальных элементов. В данном случае мы используем визуальный компонент javafx.scene.text.Text, который представляет простую текстовую надпись. При создании элемента Text мы можем передать ему выводимый текст, а также настроить его положение с помощью его методов:

Text text = new Text("Hello METANIT.COM!");		// создание надписи
text.setLayoutY(80);		// установка положения надписи по оси Y
text.setLayoutX(80);	// установка положения надписи по оси X

Все визуальные элементы, которые мы хотим отобразить в Stage, помещаются в объект javafx.scene.Scene или на сцену. Scene - это контейнер верхнего уровня для всех графических элементов. Однако напрямую в Scene объект Text мы поместить не можем. Класс Scene предусматривает установку корневого элемента или контейнера, который содержит все остальные элементы.

Таким образом, вначале элемент Text помещается в элемент Group, который представляет контейнер для группы элементов. Затем элемент Group устанавливается в качестве корневого элемента Scene. И в конце элемент Scene устанавливается для объекта Stage.

Group group = new Group(text);	// создание и установка группы элементов
Scene scene = new Scene(group);		// создание сцены
stage.setScene(scene);					// установка сцены для объекта Stage

В конце метода start мы можем настроить объект Stage, например, задать заголовок окна, а также его размеры:

stage.setTitle("JavaFX Application"); // установка заголовка окна
stage.setWidth(300);		// установка ширины окна
stage.setHeight(250);		// установка длины окна
stage.show();				// отображаем окно на экране устройства

С помощью метода show объект Stage отображается на экране устройства.

Но класс Main, как и всякий главный класс приложения Java, начинает свою работу с метода main. И в методе, чтобы запустить само приложение JavaFX, представленное классом Application, вызывается метод launch():

public static void main(String[] args) {
        
	launch(args);
}

Метод launch собственно и запускает приложение JavaFX. После этого вызывается метод start и окно приложения будет отображаться на экране.

Теперь скомпилируем и запустим приложение. В прошлой теме мы рассматривали SDK и модули JavaFX. В моем случае JavaFX SDK был распакован в папку C:\javafx-sdk-17.0.0.1, поэтому модули располагаются в папке C:\javafx-sdk-17.0.0.1\lib. Далее мы будем использовать это расположение для компиляции и запуска приложения.

Вначале с помощью команды cd перейдем в командной строке/терминале к каталоге, где расположен файл с исходным кодом. Затем скомпилируем приложение с помощью команды

javac --module-path C:\javafx-sdk-17.0.0.1\lib --add-modules=javafx.controls Main.java

Для компиляции используется стандартный компилятор Java - javac. Ему передается параметр --module-path, который указывает на расположение модулей. В каждом конкретном случае в зависимости от того, где расположен SDK, этот путь может отличаться. Кроме того, указывается параметр add-modules, который указывает на используемые модули. В данном случае применяется модуль javafx.controls, который содержит ссылки на другие модули.

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

java --module-path C:\javafx-sdk-17.0.0.1\lib --add-modules=javafx.controls Main
Компиляция и запуск приложения JavaFX

В итоге нам отобразится следующее окно:

Первая программа на JavaFX
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850