Looking for javafx Answers? Try Ask4KnowledgeBase
Looking for javafx Keywords? Try Ask4Keywords

javafxНачало работы с javafx


замечания

JavaFX - это программная платформа для создания и доставки настольных приложений, а также богатых интернет-приложений (RIA), которые могут работать на самых разных устройствах. JavaFX предназначен для замены Swing в качестве стандартной библиотеки GUI для Java SE.

ИТ позволяет разработчикам разрабатывать, создавать, тестировать, отлаживать и развертывать богатые клиентские приложения.

Внешний вид приложений JavaFX можно настроить с помощью каскадных таблиц стилей (CSS) для стилизации (см. JavaFX: CSS ) и (F) XML-файлы можно использовать для создания объектов, упрощающих создание или разработку приложения (см. FXML и контроллеры ) , Scene Builder - это визуальный редактор, позволяющий создавать файлы fxml для пользовательского интерфейса без написания кода.

Версии

Версия Дата выхода
JavaFX 2 2011-10-10
JavaFX 8 2014-03-18

Программа Hello World

Следующий код создает простой пользовательский интерфейс, содержащий одну Button которая печатает String на консоли при нажатии.

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class HelloWorld extends Application {

    @Override
    public void start(Stage primaryStage) {
        // create a button with specified text
        Button button = new Button("Say 'Hello World'");

        // set a handler that is executed when the user activates the button
        // e.g. by clicking it or pressing enter while it's focused
        button.setOnAction(e -> {
           //Open information dialog that says hello
           Alert alert = new Alert(AlertType.INFORMATION, "Hello World!?");
           alert.showAndWait();
        });

        // the root of the scene shown in the main window
        StackPane root = new StackPane();

        // add button as child of the root
        root.getChildren().add(button);

        // create a scene specifying the root and the size
        Scene scene = new Scene(root, 500, 300);

        // add scene to the stage
        primaryStage.setScene(scene);

        // make the stage visible
        primaryStage.show();
    }

    public static void main(String[] args) {
        // launch the HelloWorld application.

        // Since this method is a member of the HelloWorld class the first
        // parameter is not required
        Application.launch(HelloWorld.class, args);
    }

}
 

Класс Application является точкой входа для каждого приложения JavaFX. Можно запускать только одно Application , и это делается с использованием

Application.launch(HelloWorld.class, args);
 

Это создает экземпляр класса Application переданного как параметр, и запускает платформу JavaFX.

Для программиста важно следующее:

  1. Первый launch создает новый экземпляр класса Application ( HelloWorld в этом случае). Поэтому для класса Application нужен конструктор no-arg.
  2. init() вызывается в созданном экземпляре Application . В этом случае реализация по умолчанию из Application ничего не делает.
  3. start вызывается для экземпляра Appication и первичный Stage (= окно) передается методу. Этот метод автоматически вызывается в потоке приложения JavaFX (поток платформы).
  4. Приложение запускается до тех пор, пока платформа не решит, что пришло время закрыть. Это делается, когда последнее окно закрывается в этом случае.
  5. Метод stop вызывается в экземпляре Application . В этом случае реализация из Application ничего не делает. Этот метод автоматически вызывается в потоке приложения JavaFX (поток платформы).

В методе start построен граф сцены. В этом случае он содержит 2 Button Node : A и StackPane .

Button представляет собой кнопку в пользовательском интерфейсе, а StackPane - это контейнер для Button который определяет его размещение.

Scene создана для отображения этих Node . Наконец, Scene добавляется в Stage которая является окном, отображающим весь пользовательский интерфейс.

Установка или настройка

API JavaFX доступны как полностью интегрированная функция Java SE Runtime Environment (JRE) и Java Development Kit (JDK). Поскольку JDK доступен для всех основных настольных платформ (Windows, Mac OS X и Linux), приложения JavaFX, скомпилированные для JDK 7 и более поздних версий, также работают на всех основных настольных платформах. Поддержка платформ ARM также была доступна с помощью JavaFX 8. JDK для ARM включает базовые, графические и управляющие компоненты JavaFX.

Чтобы установить JavaFX, установите выбранную вами версию среды Java Runtime и набора Java Development .

Возможности JavaFX включают:

  1. Java API.
  2. FXML и Scene Builder.
  3. WebView.
  4. Совместимость Swing.
  5. Встроенные элементы пользовательского интерфейса и CSS.
  6. Тема Модены.
  7. Особенности 3D-графики.
  8. API холста.
  9. Печать API.
  10. Поддержка Rich Text.
  11. Поддержка Multitouch.
  12. Поддержка Hi-DPI.
  13. Графический конвейер с аппаратным ускорением.
  14. Высокопроизводительный медиа-движок.
  15. Автономная модель развертывания приложений.