T.M. SoftStudio

feci quod potui, faciant meliora potentes

Программный интерфейс JavaFX API на русском языке

Настольное приложение позволяет просматривать документацию по программному интерфейсу платформы JavaFX на русском языке

Скачать программный интерфейс JavaFX API на русском языке


Скачать Часть 1


Скачать Часть 2


Скачать Часть 3


Скачать Часть 4

Краткий обзор JavaFX API

Программный интерфейс JavaFX API дает возможность разрабатывать Java приложения с насыщенным графическим интерфейсом пользователя, 2D и 3D графикой, медиаконтентом, код которых сочетает широкие возможности платформы Java с богатой графической и медиа функциональностью платформы JavaFX. Программный интерфейс JavaFX API содержит следующие пакеты:

javafx.animation – дает возможность создавать программируемую анимацию GUI-компонентов со встроенной временной шкалой и анимацию по ключевым кадрам.

Базовым классом анимации (изменений свойств графических объектов – размера, положения, цвета и т.д. – со временем) платформы JavaFX является абстрактный класс Animation.

Класс Animation служит родительским классом для классов Timeline и Transition, позволяющих создавать анимацию по ключевым кадрам и программируемую анимацию со встроенной временной шкалой.

Экземпляр класса Animation нельзя создать с помощью конструктора, объект анимации можно создать, только создавая экземпляр класса Timeline или Transition.

Абстрактный класс Transition является базовым классом для классов, представляющих программируемую анимацию со встроенной внутри временной шкалой.

Класс Transition служит родительским классом для классов FadeTransition, FillTransition, ParallelTransition, PathTransition, PauseTransition, RotateTransition, ScaleTransition, SequentialTransition, StrokeTransition, TranslateTransition.

Для создания анимации используется не сам класс Transition, а его конкретные реализации в виде дочерних классов.

Класс FadeTransition представляет анимацию свойства прозрачности узла графа сцены, создавая иллюзию исчезновения или появления графического объекта.

Класс FillTransition представляет анимацию изменения цвета графического объекта.

Класс ParallelTransition служит контейнером для анимаций и позволяет запускать свои дочерние анимации параллельно.

Класс PathTransition представляет анимацию свойства пространственного положения узла графа сцены, создавая иллюзию перемещения графического объекта вдоль кривой.

Класс PauseTransition используется в последовательности анимаций для установки паузы между двумя последовательными анимациями.

Класс RotateTransition представляет анимацию вращения графического объекта.

Класс ScaleTransition представляет анимацию масштабирования графического объекта.

Класс SequentialTransition является контейнером последовательности анимаций, выполняемых друг за другом.

Класс StrokeTransition представляет анимацию цвета контура графического объекта.

Класс TranslateTransition представляет анимацию простого перемещения графического объекта из одной 3D точки в другую 3D точку.

Класс Timeline представляет анимацию по ключевым кадрам, которая создается путем расстановки ключевых кадров на временной шкале с последующим ее проигрыванием. Ключевые кадры задают опорные значения изменяемого анимацией свойства объекта, а среда выполнения генерирует плавные переходы между ними.

Класс KeyFrame представляет ключевой кадр и позволяет определить на временной шкале целевые значения свойств объектов для создания анимации.

Класс KeyValue представляет целевое значение свойства объекта, связанное с ключевым кадром, для создания анимации по ключевым кадрам.

При выполнении анимации среда выполнения интерполирует значение свойства объекта в интервалах между целевыми значениями.

Абстрактный класс Interpolator<T> используется в пакете javafx.animation классами Transition и KeyValue для определения способа прироста значения свойства объекта в интервалах между целевыми значениями.

Платформа JavaFX предлагает конкретные реализации класса Interpolator<T>, воспользоваться которыми можно вызывая статические поля и методы класса Interpolator.

Абстрактный класс AnimationTimer позволяет создавать таймер, вызываемый в каждом кадре.

javafx.application – обеспечивает жизненный цикл JavaFX-приложения.

Абстрактный класс Application обеспечивает жизненный цикл JavaFX-приложения и расширяется главным Java-классом приложения, содержащим метод main() – точку входа в приложение.

Объект Application.Parameters содержит аргументы командной строки, неименованные параметры JNLP-файла и пары имя-значение JNLP-файла.

Абстрактный класс Preloader расширяет абстрактный класс Application и может реализовываться отдельным классом приложения для отображения пользователю процесса загрузки основного JavaFX-приложения.

Класс, расширяющий класс Preloader, является небольшим приложением, запускаемым перед запуском основного JavaFX-приложения и получающим уведомления о прогрессе загрузки ресурсов основным JavaFX-приложением, уведомления об ошибках запуска основного JavaFX-приложения, о его инициализации и запуске.

Интерфейс Preloader.PreloaderNotification является базовым интерфейсом для уведомлений предзагрузчика Preloader и имеет реализации в виде классов Preloader.ErrorNotification, Preloader.ProgressNotification и Preloader.StateChangeNotification.

Статический класс Preloader.ErrorNotification представляет уведомление об ошибке запуска основного JavaFX-приложения.

Статический класс Preloader.ProgressNotification представляет уведомление о прогрессе загрузки и инициализации основного JavaFX-приложения.

Статический класс Preloader.StateChangeNotification представляет уведомление об изменении статуса основного JavaFX-приложения.

Класс HostServices обеспечивает связь между JavaFX-кодом и Web-страницей, содержащей JavaFX-апплет, и дает возможность получить URI-адрес расположения JAR-файлов приложения, URI-адрес Web-страницы, открыть Web-страницу в браузере и получить доступ к Web-странице через JavaScript-код, используя LiveConnect-мост Java-to-JavaScript.

Класс Platform является вспомогательным классом, обеспечивающим взаимодействие со средой выполнения платформы JavaFX.

Перечисление ConditionalFeature расширяет перечисление java.lang.Enum<ConditionalFeature> и представляет необязательные опции платформы JavaFX.

javafx.beans – содержит интерфейс Observable, который является базовым интерфейсом для интерфейсов связывания данных и свойств компонентов JavaFX Beans и позволяет присоединить слушателя InvalidationListener для обработки события недействительности значения.

Интерфейс InvalidationListener обеспечивает обработку событий недействительности значения javafx.beans.value.ObservableValue.

Интерфейс InvalidationListener реализуется классом WeakInvalidationListener.

При присоединении слушателя InvalidationListener методом addListener(), объект Observable сохраняет устойчивую ссылку на слушателя, предотвращающую его удаление сборщиком мусора, даже если слушатель уже не используется. Удаление такого слушателя требует применения метода removeListener(). Использование же класса WeakInvalidationListener решает эту проблему сборки мусора.

Класс WeakInvalidationListener реализует интерфейсы InvalidationListener и WeakListener и обеспечивает слабую связь объекта Observable со слушателем InvalidationListener, решая проблему сборки мусора.

Интерфейс WeakListener является супер интерфейсом для всех реализаций слабого связывания.

Аннотация DefaultProperty маркирует свойство по умолчанию класса. При этом дочерний FXML-элемент, представляющий данное свойство по умолчанию, может быть исключен из FXML-разметки.

Аннотация NamedArg маркирует аргументы метода для FXML.

javafx.beans.binding – позволяет создавать связывание данных – синхронизацию объектов-источников данных, при которой изменения одного объекта автоматически отражаются в других объектах.

Интерфейс Binding<T> представляет результат связанного выражения с участием объектов, которые называются зависимостями связывания. Связывание обеспечивает автоматический пересчет значения Binding, в случае его запроса, при изменении какой-либо зависимости.

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

Интерфейс Binding<T> расширяет интерфейс javafx.beans.value.ObservableValue<T>.

Интерфейс NumberExpression расширяет интерфейс javafx.beans.value.ObservableNumberValue, обеспечивая методы генерации объектов связывания для выражений с участием чисел. При этом объекты связывания являются экземплярами реализации интерфейса NumberBinding.

Объекты связывания для других типов данных являются экземплярами классов StringBinding, BooleanBinding, ListBinding<E>, MapBinding<K,V>, ObjectBinding<T>, SetBinding<E>.

Интерфейс NumberBinding расширяет интерфейсы Binding<java.lang.Number> и NumberExpression, обеспечивая вычисление числа, являющегося результатом связанного выражения. Реализацию интерфейса NumberBinding представляют классы DoubleBinding, FloatBinding, IntegerBinding и LongBinding.

Объекты связывания – экземпляры классов DoubleBinding, FloatBinding, IntegerBinding, LongBinding, StringBinding, BooleanBinding, ListBinding<E>, MapBinding<K,V>, ObjectBinding<T>, SetBinding<E>, содержат результаты связанных выражений с участием объектов – зависимостей связывания, изменение которых приводит к автоматическому пересчету результатов связанных выражений.

Сами связанные выражения обеспечивает интерфейс NumberExpression и классы BooleanExpression, DoubleExpression, FloatExpression, IntegerExpression, LongExpression, NumberExpressionBase, ObjectExpression<T>, StringExpression, ListExpression<E>, MapExpression<K,V>, SetExpression<E>. Данные классы лежат в основе JavaFX Beans свойств и поэтому за создание объектов связывания отвечают соответствующие методы JavaFX Beans свойств. Чтобы создать объект связанного выражения ХХХExpression нужно создать экземпляр JavaFX Beans свойства.

Реализацию интерфейса NumberExpression в пакете javafx.beans.binding представляет абстрактный класс NumberExpressionBase.

Пакет javafx.beans.binding содержит реализации связывания Binding<T> и связанных выражений для различных типов данных: Boolean, Double, Float, Integer, Long, Object, String, List, Map, Set.

javafx.beans.property – обеспечивает архитектуру компонентов JavaFX Beans для представления свойств объектов, улучшающую и расширяющую модель JavaBeans-компонентов.

Интерфейс ReadOnlyProperty<T> расширяет интерфейс javafx.beans.value.ObservableValue<T> и является базовым интерфейсом для свойств компонентов JavaFX Beans.

Интерфейс Property<T> расширяет интерфейсы ReadOnlyProperty<T> и javafx.beans.value.WritableValue<T> и обеспечивает для свойств компонентов JavaFX Beans не только их чтение, но и запись и связывание.

Связывание означает синхронизацию значения свойства со значением другого объекта и может быть двух типов – однонаправленным и двунаправленным.

При однонаправленном связывании изменение значения объекта приводит к изменению значения свойства, но не наоборот, а при двунаправленном связывании синхронизация работает в двух направлениях.

Объектом, с которым связывается свойство компонента JavaFX Beans, в случае однонаправленного связывания выступает объект ObservableValue, в случае двунаправленного связывания – объект Property.

После однонаправленного связывания свойство компонента JavaFX Beans уже нельзя изменить иначе как изменив объект ObservableValue, с которым оно связано. Кроме того, свойство компонента JavaFX Beans может иметь только одно однонаправленное связывание.

При двунаправленном связывании ограничение состоит в том, что как свойство компонента JavaFX Beans, так и объект Property<T>, с которым свойство связывается, должны быть одного типа T.

Запись свойств компонентов JavaFX Beans обеспечивает интерфейс WritableValue<T>, а связывание – набор методов интерфейса Property<T>.

Пакет javafx.beans.property предоставляет набор классов-реализаций интерфейсов ReadOnlyProperty<T> и Property<T> для различных типов данных: Boolean, Double, Float, Integer, Long, Object, String, List, Map, Set.

Классы пакета javafx.beans.property, обеспечивающие реализацию интерфейсов ReadOnlyProperty<T> и Property<T> для различных типов данных, являются также расширениями классов пакета javafx.beans.binding, предоставляющих методы для генерации выражений связывания, результат которых синхронизирован со значением JavaFX Beans свойства.

javafx.beans.property.adapter – обеспечивает приведение JavaBeans свойств к JavaFX свойствам, применяя шаблон проектирования Class Adapter.

Шаблон проектирования Адаптер обеспечивает расширение функциональности одного класса за счет функциональности другого класса, позволяя включать существующие объекты в новые структуры, независимо от различий в их интерфейсах.

public class ClassAdapter extends Adaptee



implements TargetInterface {



public void targetMethod() {



method();



}}

Где TargetInterface – это интерфейс JavaBeanProperty<T>, Adaptee – классы ХХХProperty пакета javafx.beans.property, ClassAdapter – классы JavaBeanХХХProperty пакета javafx.beans.property.adapter.

Класс JavaBeanХХХProperty обеспечивает адаптер между простым JavaBeans-свойством и JavaFX-свойством. Экземпляр класса JavaBeanХХХProperty не может быть создан с помощью конструктора, а создается с помощью класса-фабрики JavaBeanХХХPropertyBuilder.

Класс JavaBeans-компонента должен иметь, по крайней мере, методы get() и set(). Если вызывается метод get() JavaBeans-компонента, он возвращает значение JavaBeans-свойства. Если же вызывается метод set() JavaBeans-компонента, который поддерживает слушателей PropertyChangeListeners пакета java.beans, свойство JavaBeanХХХProperty автоматически уведомляется об изменении JavaBeans-свойства. Если вызывается метод set() JavaBeans-компонента, который не поддерживает слушателей PropertyChangeListeners пакета java.beans, свойство JavaBeanХХХProperty может быть уведомлено об изменении JavaBeans-свойства вызовом метода fireValueChangedEvent(). Если JavaBeans-свойство также ограничено, т.е. поддерживает слушателей VetoableChangeListeners, свойство JavaBeanХХХProperty будет автоматически отклонять изменения, если оно связано со значением ObservableValue.

Интерфейс ReadOnlyJavaBeanProperty<T> расширяет интерфейс javafx.beans.property.ReadOnlyProperty<T> и является суперинтерфейсом для всех классов-адаптеров между неизменяемыми JavaBeans свойствами и JavaFX свойствами.

Интерфейс JavaBeanProperty<T> расширяет интерфейсы ReadOnlyJavaBeanProperty<T>, javafx.beans.property.Property<T> и является суперинтерфейсом для всех классов-адаптеров между изменяемыми JavaBeans свойствами и JavaFX свойствами.

Пакет javafx.beans.property.adapter также содержит реализации интерфейсов ReadOnlyJavaBeanProperty<T> и JavaBeanProperty<T> для различных типов данных: Boolean, Double, Float, Integer, Long, Object, String.

javafx.beans.value – содержит интерфейсы ObservableValue и WritableValue и их расширения, а также интерфейс ChangeListener.

Интерфейс WritableValue реализуется свойствами компонентов JavaFX Beans, интерфейс ObservableValue – свойствами компонентов JavaFX Beans и классами связывания данных.

Объект ObservableValue позволяет присоединить слушателя ChangeListener для обработки события изменения значения и слушателя InvalidationListener для обработки события недействительности значения.

Интерфейс WritableValue обеспечивает считывание и запись значения.

Интерфейс ObservableValue<T> расширяет интерфейс javafx.beans.Observable и обеспечивает обертывание значения свойства объекта и возможность прослушивания событий изменения значения и событий недействительности значения.

События недействительности значения возникают в случае отложенных вычислений значения, поддерживаемых реализациями интерфейса ObservableValue<T> системой связывания данных и свойствами компонентов JavaFX.

Отложенное вычисление означает, что значение пересчитывается не сразу после своего изменения, а только тогда когда оно запрашивается методом getValue() интерфейса ObservableValue<T>. В промежутке между изменением значения и его пересчетом и генерируется событие недействительности значения.

Пакет javafx.beans.value предоставляет набор расширений интерфейса ObservableValue<T> для различных типов данных: Boolean, Double, Float, Integer, Long, Object, String, List, Map, Set.

Интерфейс ChangeListener<T> обеспечивает обработку событий изменения значения ObservableValue.

Класс WeakChangeListener<T> реализует интерфейс ChangeListener<T> и обеспечивает слабую связь объекта ObservableValue со слушателем ChangeListener.

При присоединении слушателя, обработчика событий, ChangeListener методом addListener(), объект ObservableValue сохраняет устойчивую ссылку на слушателя, предотвращающую его удаление сборщиком мусора, даже если слушатель уже не используется. Удаление такого слушателя требует применения метода removeListener(). Использование же класса WeakChangeListener<T> решает эту проблему сборки мусора.

Абстрактный класс ObservableValueBase<T> является базовой реализацией интерфейса ObservableValue<T>.

Интерфейс WritableValue<T> обеспечивает обертывание значения для считывания и установки. Интерфейс WritableValue<T> реализуется свойствами компонентов JavaFX Beans.

Пакет javafx.beans.value предоставляет набор расширений интерфейса WritableValue<T> для различных типов данных: Boolean, Double, Float, Integer, Long, Object, String, List, Map, Set.

javafx.collections – представляет расширение интерфейсов java.util.List, java.util.Set и java.util.Map платформы Java Collections Framework.

Интерфейс ObservableList<E> расширяет интерфейсы java.util.List<E> и Observable и представляет список, для которого можно регистрировать слушателей его изменений.

Интерфейс ListChangeListener<E> обеспечивает обработку событий изменения списка ObservableList<E>.

Абстрактный статический класс ListChangeListener.Change<E> обеспечивает информацию об изменениях значения объекта ObservableList.

Интерфейс ObservableMap<K,V> расширяет интерфейсы java.util.Map<K,V> и Observable и представляет хэш-таблицу, для которой можно регистрировать слушателей ее изменений.

Интерфейс MapChangeListener<K,V> обеспечивает обработку событий изменения хэш-таблицы ObservableMap<K,V>.

Абстрактный статический класс MapChangeListener.Change<K,V> предоставляет информацию об изменениях хэш-таблицы.

Интерфейс ObservableSet<E> расширяет интерфейсы java.util.Set<E> и Observable и представляет набор, для которого можно регистрировать слушателей его изменений.

Интерфейс SetChangeListener<E> обеспечивает обработку событий изменения набора ObservableSet<E>.

Абстрактный статический класс SetChangeListener.Change<E> предоставляет информацию об изменениях набора.

Класс WeakListChangeListener<E> реализует интерфейсы ListChangeListener<E> и WeakListener и обеспечивает слабую связь объекта ObservableList со слушателем, решая проблему сборки мусора.

Класс WeakSetChangeListener<E> реализует интерфейсы SetChangeListener<E> и WeakListener и обеспечивает слабую связь объекта ObservableSet со слушателем, решая проблему сборки мусора.

Класс WeakMapChangeListener<K,V> реализует интерфейсы MapChangeListener<K,V>, WeakListener и обеспечивает слабую связь объекта ObservableMap со слушателем, решая проблему сборки мусора.

Класс FXCollections обеспечивает различные операции с JavaFX-коллекциями с помощью статических методов.

Интерфейс ObservableArray<T extends ObservableArray<T>> расширяет интерфейс Observable и представляет массив, для которого можно регистрировать слушателей его изменений.

Интерфейс ArrayChangeListener<T extends ObservableArray<T>> обеспечивает обработку событий изменения массива ObservableArray<T extends ObservableArray<T>> .

Интерфейс ObservableFloatArray расширяет интерфейс ObservableArray<ObservableFloatArray> и представляет массив действительных чисел, для которого можно регистрировать слушателей его изменений.

Интерфейс ObservableIntegerArray расширяет интерфейс ObservableArray<ObservableIntegerArray> и представляет массив целых чисел, для которого можно регистрировать слушателей его изменений.

Абстрактный класс ObservableArrayBase<T extends ObservableArray<T>> реализует интерфейс ObservableArray<T extends ObservableArray<T>> и служит основой для всех остальных реализаций.

Абстрактный класс ObservableListBase<E> реализует интерфейс ObservableList<E> и является основой для всех остальных реализаций.

Абстрактный класс ModifiableObservableListBase<E> расширяет класс ObservableListBase<E> и служит основой для всех остальных реализаций изменяемого списка.

javafx.concurrent – позволяет выполнять код в фоновом потоке, отличном от основного потока JavaFX-приложения.

Интерфейс Worker<V> предназначен для реализации классами, обеспечивающими выполнение задач в фоновых потоках, не блокирующих основной поток JavaFX-приложения.

Интерфейс Worker<V> предоставляет свойства выполнения задачи, доступные для чтения из основного потока JavaFX-приложения.

В пакете javafx.concurrent интерфейс Worker<V> реализуется классами Service и Task.

Абстрактный класс Task<V> расширяет класс java.util.concurrent.FutureTask<V> и реализует интерфейс Worker<V> и javafx.event.EventTarget, обеспечивая асинхронное выполнение задачи в фоновом потоке.

Конкретные реализации абстрактного класса Task<V> должны переопределять его метод call(), вызываемый средой выполнения в фоновом потоке.

Запуск объекта Task и соответственно вызов его метода call() может быть выполнен различными способами:

    С помощью сервисного класса Service, обеспечивающего создание и запуск объекта Task.

    Унаследованным от класса FutureTask методом run().

    С помощью программного интерфейса Java Executor API.

Абстрактный класс Service<V> реализует интерфейсы Worker<V> и javafx.event.EventTarget и обеспечивает создание и запуск объекта Task, а также отображение свойств выполнения фоновой задачи в основном потоке JavaFX-приложения.

Конкретные реализации абстрактного класса Service<V> должны переопределять его метод createTask(), отвечающий за создание фоновой задачи Task.

В отличие от объекта Task, объект Service является повторно используемым, так как методы класса Service<V> позволяют сбросить и перезапустить объект Service.

Абстрактный класс ScheduledService<V> расширяет класс Service<V> и представляет сервис, который автоматически перезагрузится после успешного выполнения задачи и при некоторых условиях перезагрузится в случае возникновения ошибки выполнения задачи.

javafx.css – позволяет определять пользовательские CSS свойства и пользовательские CSS псевдо классы для изменения внешнего вида GUI-компонентов.

Класс CssMetaData служит мостом между CSS-значением, определенным в CSS-файле, и JavaFX-свойством StyleableProperty GUI-компонента.

Экземпляр класса CssMetaData содержит информацию об имени CSS-свойства, типе, к которому CSS-значение должно приводиться, и значении CSS-свойства по умолчанию.

Класс FontCssMetaData<S extends Styleable> реализует класс CssMetaData для свойств шрифта.

Класс StyleConverter<F,T> обеспечивает конвертацию CSS-to-Java в виде преобразования объекта ParsedValue<F,T> из типа F в тип T.

Класс ParsedValue<V,T> представляет CSS-значение. Экземпляр класса создается CSS-парсером.

Интерфейс Styleable реализуется GUI-компонентами для поддержки CSS.

Абстрактный класс PseudoClass представляет CSS псевдо класс.

Интерфейс StyleableProperty<T> расширяет интерфейс WritableValue<T> и представляет JavaFX-свойство с поддержкой CSS.

Интерфейс StyleableProperty<T> реализуется классами для различных типов данных.

Перечисление StyleOrigin расширяет java.lang.Enum<StyleOrigin> и представляет источник CSS-стилей.

javafx.embed.swing – обеспечивает встраивание JavaFX-контента в Swing-приложения и наоборот.

Класс JFXPanel расширяет класс javax.swing.JComponent графической библиотеки Swing и обеспечивает встраивание JavaFX-сцены в обычное Swing-приложение.

Класс SwingFXUtils обеспечивает преобразование типов данных между форматами Swing/AWT и JavaFX.

Класс SwingNode обеспечивает встраивание Swing-контента в JavaFX-приложение.

javafx.embed.swt – обеспечивает использование JavaFX-компонентов в SWT-приложениях.

Класс FXCanvas расширяет класс org.eclipse.swt.widgets.Canvas и обеспечивает встраивание JavaFX-контента в SWT-приложение.

Класс SWTFXUtils обеспечивает преобразование типов данных между форматами SWT и JavaFX.

javafx.event – представляет модель событий платформы JavaFX.

Реализация интерфейса EventDispatcher отвечает за доставку события, представленного объектом javafx.event.Event, к цели события, представленной объектом javafx.event.EventTarget, через цепочку доставки, представленной объектом javafx.event.EventDispatchChain и определенной целью события.

Процесс доставки события через цепочку доставки разделяется на две фазы. Первая фаза называется фазой захвата (capturing phase) и состоит из передачи события от корневого узла к узлу цели события. Вторая фаза – восходящая фаза (bubbling phase) заключается в противоположном движении события от узла цели события к корневому узлу цепочки доставки.

Реализация интерфейса EventDispatchChain состоит из цепочки EventDispatcher-объектов, отвечающих за передачу события. При этом событие передается от одного EventDispatcher-объекта к другому EventDispatcher-объекту до окончания цепочки доставки EventDispatchChain.

Интерфейс EventTarget реализуется узлами графа сцены – компонентами графического интерфейса JavaFX-приложения, которые поэтому могут выступать в качестве цели событий.

Интерфейс EventHandler<T extends Event> расширяет интерфейс java.util.EventListener и обеспечивает обработку событий.

Класс WeakEventHandler<T extends Event> реализует интерфейс EventHandler<T extends Event> и обеспечивает слабое связывание источника события с обработчиком события.

Класс Event расширяет класс java.util.EventObject, реализует интерфейс java.lang.Cloneable и является базовым классом для JavaFX-событий.

Каждое JavaFX-событие характеризуется источником события, целью события и типом события.

Источник события – это узел графа сцены, в котором событие происходит и для которого зарегистрирован обработчик события EventHandler.

Цель события – это узел графа сцены, для которого зарегистрирована цепочка доставки события.

Тип события – это характеристика события в пределах одного класса события.

Класс Event имеет следующие подклассы:

    javafx.event.ActionEvent – событие действий таких объектов как Button, KeyFrame и др.

    CheckBoxTreeItem.TreeModificationEvent<T> - событие изменения состояния выбора экземпляра CheckBoxTreeItem.

    javafx.scene.input.InputEvent – событие ввода данных пользователем.

    javafx.scene.control.ListView.EditEvent<T> - событие редактирования списка.

    javafx.scene.media.MediaErrorEvent – событие ошибки обработки медиа контента.

    javafx.scene.control.ScrollToEvent<T> - событие прокрутки.

    javafx.scene.control.SortEvent<C> - событие сортировки.

    javafx.scene.control.TableColumn.CellEditEvent<S,T> - событие редактирования таблицы.

    javafx.scene.transform.TransformChangedEvent - событие изменения свойств трансформации.

    javafx.scene.control.TreeItem.TreeModificationEvent<T> - событие изменения списка дочерних элементов дерева.

    javafx.scene.control.TreeTableColumn.CellEditEvent<S,T> - событие редактирования ячейки.

    javafx.scene.control.TreeTableView.EditEvent<S> - событие редактирования.

    javafx.scene.control.TreeView.EditEvent<T> - событие редактирования дерева.

    javafx.scene.web.WebErrorEvent - событие ошибки веб движка.

    javafx.scene.web.WebEvent<T> - событие JavaScript-кода.

    javafx.stage.WindowEvent – событие окна приложения.

    javafx.concurrent.WorkerStateEvent – событие изменения состояния Worker-объекта.

Класс EventType<T extends Event> представляет тип событий, характеризующий события в пределах одного класса событий.

Типы событий образуют иерархию с корневым узлом, представленным объектом EventType.ROOT (Event.ANY).

Класс ActionEvent расширяет класс Event и представляет события, инициированные действиями таких объектов как Button, KeyFrame и др.

javafx.fxml – содержит класс FXMLLoader, обеспечивающий загрузку XML-файла, содержащего декларативное FXML-описание графического интерфейса пользователя.

Интерфейс Initializable может быть реализован классом контроллера для его автоматической инициализации.

Класс FXMLLoader обеспечивает загрузку декларативного описания графа сцены из XML-документа.

Класс JavaFXBuilderFactory реализует интерфейс javafx.util.BuilderFactory и используется при создании пользовательских FXML-компонентов.

Аннотация @FXML используется для маркировки не публичных полей и методов класса контроллера, связанных с FXML-описанием.

javafx.geometry – содержит классы двухмерной графики.

Абстрактный класс Bounds является базовым классом для классов, описывающих границы узлов графа сцены.

Класс Bounds расширяется классом BoundingBox, представляющим прямоугольные границы узла графа сцены.

Класс Dimension2D представляет двухмерный объект, характеризующийся шириной и высотой.

Класс Insets обеспечивает внутреннее смещение для четырех сторон прямоугольника.

Класс Point2D представляет точку в двухмерном пространстве с координатами (х, у).

Класс Point3D представляет точку в трехмерном пространстве с координатами x,y,z.

Класс Rectangle2D представляет прямоугольник, описывающий границы объекта и характеризующийся координатами левого верхнего угла и шириной и высотой.

Перечисления HPos, Orientation, Pos, Side, VPos, HorizontalDirection, NodeOrientation, VerticalDirection расширяют перечисление java.lang.Enum<Т> и определяют ориентацию и направление.

javafx.print – обеспечивает печать узла графа сцены.

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

    Поиск принтера.

    Создание задания на печать и создание конфигурации печати.

    Определение параметров страницы.

    Вывод узла графа сцены и его иерархии на печать.

Класс PrinterJob является базовым классом программного интерфейса Printing API печати графа сцены.

Класс PrinterJob обеспечивает создание задания на печать, получение конфигурации печати для ее определения, установку принтера и запуск печати.

Класс Printer представляет принтер для выполнения задания на печать.

Класс PrinterAttributes предоставляет информацию о характеристиках принтера.

Класс PageLayout содержит информацию, необходимую для компоновки контента страницы, такую как отступы, размеры и ориентацию..

Перечисление Printer.MarginType определяет область печати.

Класс JobSettings определяет конфигурацию задания на печать.

Перечисление PrinterJob.JobStatus определяет статус печати.

javafx.scene – содержит базовые классы программного интерфейса графа сцены JavaFX Scene Graph API.

Класс Scene реализует интерфейс javafx.event.EventTarget и является контейнером для графа сцены.

Для отображения сцены необходимо добавить объект Scene в графический контейнер javafx.stage.Stage окна JavaFX-приложения.

Для того чтобы связать граф сцены с объектом Scene, требуется создать корневой узел графа сцены и определить его как свойство объекта Scene.

Абстрактный класс Node реализует интерфейсы javafx.event.EventTarget и javafx.css.Styleable и является базовым классом для узлов графа сцены.

Узлы Node составляют иерархическую структуру данных – дерево узлов, в котором узлы Node могут быть трех типов – корневой узел, узел ветви и узел листа.

Корневой узел – это единственный узел дерева, не имеющий предка, однако сам являющийся предком для всех остальных узлов дерева. Узел ветви имеет родительский узел и сам служит предком для набора узлов. Узел ветви Node представлен базовым классом javafx.scene.Parent, расширяющим класс Node и имеющим подклассы javafx.scene.Group и javafx.scene.layout.Region узлов ветвей. Узел листа имеет родительский узел, однако не имеет дочерних узлов. Узел листа Node представлен расширениями класса Node – базовыми классами javafx.scene.shape.Shape и javafx.scene.shape.Shape3D и их подклассами, классами javafx.scene.SubScene, javafx.embed.swing.SwingNode, javafx.scene.Camera, javafx.scene.LightBase, javafx.scene.web.WebView, javafx.scene.image.ImageView, javafx.scene.media.MediaView и javafx.scene.canvas.Canvas.

Для того чтобы дерево узлов Node стало графом сцены необходимо установить корневой узел дерева в качестве свойства объекта javafx.scene.Scene.

Как правило, в качестве корневого узла используется объект javafx.scene.Group.

JavaFX-деревья не могут иметь циклов, при которых узел становится сам для себя предком, а также пересечений, при которых один и тот же узел служит дочерним узлом для разных предков.

Абстрактный класс Parent расширяет класс Node и является базовым классом для классов, представляющих узлы ветвей графа сцены.

Узел ветви графа сцены характеризуется тем, что имеет родительский узел и может иметь дочерние узлы.

Класс Parent имеет следующие подклассы:

    javafx.scene.Group – обеспечивает для своей коллекции дочерних узлов трансформации, эффекты и режимы наложения.

    javafx.scene.layout.Region – обеспечивает для своих дочерних узлов применение CSS-стилей.

    javafx.scene.web.WebView – обеспечивает отображение HTML-контента.

Класс Group расширяет класс Parent и представляет узел ветви графа сцены, обеспечивая общие границы для своих дочерних узлов, при этом все трансформации, эффекты и изменения состояний, применяющиеся к узлу Group, автоматически применяются и к его дочерним узлам.

Абстрактный класс Camera является базовым классом для классов, представляющих камеры для отображения сцены.

Реализациями класса Camera являются классы ParallelCamera (без перспективы) и PerspectiveCamera (с перспективой).

Абстрактный класс Cursor представляет растровое изображение курсора мышки.

Реализацией класса Cursor является класс ImageCursor.

Классы SnapshotParameters и SnapshotResult используются в методе snapshot() классов Node и Scene.

Абстрактный класс LightBase представляет источник света для 3D-сцены и реализуется классами AmbientLight и PointLight.

Класс AmbientLight представляет обволакивающий всенаправленный источник света.

Класс PointLight представляет точечный всенаправленный источник света.

javafx.scene.canvas – предоставляет компонент Canvas для 2D-рисования.

Класс Canvas расширяет класс Node и представляет изображение, созданное с помощью класса GraphicsContext.

javafx.scene.chart – обеспечивает создание диаграмм для представления данных.

Абстрактный класс Chart расширяет класс javafx.scene.layout.Region и является базовым классом для классов, представляющих диаграммы данных, обеспечивая заголовок диаграммы и легенду диаграммы – специальное пояснение к маркерам диаграммы.

Класс Chart имеет следующие подклассы:

    PieChart – круговые (секторные) диаграммы.

    XYChart<X,Y> - диаграммы с прямоугольной системой координат (с двумя осями).

Класс PieChart расширяет класс Chart и представляет круговую или секторную диаграмму.

Статический класс PieChart.Data представляет сектора круговой диаграммы.

Абстрактный класс XYChart<X,Y> расширяет класс Chart и является базовым классом для классов, представляющих диаграммы с двумя осями.

Класс XYChart<X,Y> имеет следующие подклассы:

    AreaChart – диаграммы-области.

    BarChart – диаграммы-прямоугольники.

    BubbleChart – диаграммы, состоящие из кружков.

    LineChart – двухмерные графики.

    ScatterChart – точечные диаграммы или графики разброса данных.

    StackedAreaChart – вариант диаграммы AreaChart с тем отличием, что области данной диаграммы не перекрывают друг друга, а примыкают. Кроме того, диаграмма StackedAreaChart обеспечивает интерполяцию значений вдоль линии, соединяющей точки данных.

    StackedBarChart – вариант диаграммы BarChart с тем отличием, что столбец для каждой серии устанавливается не рядом, а на верхней части столбца предыдущей серии.

Класс XYChart.Series<X,Y> представляет именованную серию элементов данных диаграммы с двумя осями.

Статический класс XYChart.Data<X,Y> представляет элемент данных диаграммы с двумя осями.

Абстрактный класс Axis<T> расширяет класс javafx.scene.layout.Region и является базовым классом для классов, представляющих оси диаграмм.

Класс Axis<T> имеет следующие подклассы:

    CategoryAxis – ось, отображающая дискретные строковые значения, каждое из которых представляет отдельную категорию.

    ValueAxis – ось, отображающая набор дискретных числовых значений.

Статический класс Axis.TickMark<T> представляет подписанную метку оси.

Класс NumberAxis расширяет класс ValueAxis<java.lang.Number> и представляет числовые оси диаграмм.

По умолчанию для объекта NumberAxis в качестве объекта javafx.util.StringConverter, определяющего форматирование подписей к меткам оси, используется объект javafx.scene.chart.NumberAxis.DefaultFormatter.

javafx.scene.control – предоставляет GUI-компоненты контроля.

Интерфейс Skinnable реализуется классами Control компонентов контроля графического интерфейса пользователя JavaFX-приложения для обеспечения их связи с объектом Skin, отвечающим за визуальное представление компонентов контроля GUI-интерфейса.

Данная архитектура компонентов контроля GUI-интерфейса платформы JavaFX является реализацией модели MVC (Модель-Представление-Поведение), в которой модель отвечает за бизнес-логику, представление – за отображение информации, предоставляемой моделью, а поведение (контроллер) – за связь с пользователем.

В JavaFX-реализации модели MVC классы Control отвечают за состояние GUI-компонентов, а классы Skin – за их визуальное отображение. Также платформа JavaFX содержит классы Behavior (пакет com.sun.javafx.scene.control.behavior), отвечающие за взаимодействие GUI-компонентов с пользователем.

Взаимодействие между объектами Control, Skin и Behavior построено таким образом, что объект Skin является слушателем изменений состояния объекта Control, а объект Behavior – слушателем событий, инициированных пользователем, в результате обработки которых изменяется состояние объекта Control. Объект Skin имеет ссылку только для чтения на объект Control и ссылку для чтения и записи на объект Behavior. Объект Control имеет ссылку для чтения и записи на объект Skin.

Интерфейс Skin<C extends Skinnable> отвечает за визуальное представление объектов Skinnable (объектов Control). Интерфейс Skin<C extends Skinnable> реализуется классом SkinBase<C extends Control>.

Абстрактный класс Control расширяет класс javafx.scene.layout.Region и реализует интерфейс Skinnable и является базовым классом для классов, представляющих GUI-компоненты JavaFX-приложения.

Класс Control имеет следующие реализации:

    Accordion – контейнер с расположенными последовательно панелями.

    ChoiceBox – список выбора заранее определенных опций.

    ComboBoxBase – базовый класс для компонентов ColorPicker, ComboBox, DatePicker, представляющих собой кнопку, при нажатии на которую появляется набор элементов для выбора пользователем.

    HTMLEditor – редактор HTML-контента.

    Labeled – базовый класс для GUI-компонентов ButtonBase, Cell, Label, TitledPane, содержащих текстовые метки. Класс ButtonBase расширяется классами Button, CheckBox, Hyperlink, MenuButton (расширяется классом SplitMenuButton), ToggleButton (расширяется классом RadioButton).

    ListView – прокручивающийся список элементов.

    MenuBar – панель меню.

    Pagination – компонент, обеспечивающий навигацию между частями контента.

    ProgressIndicator – круглый индикатор выполнения задачи, расширяется классом ProgressBar – горизонтальный индикатор.

    ScrollBar – полоса прокрутки.

    ScrollPane – панель с полосами прокрутки.

    Separator – разделяющая контент линия.

    Slider – ползунок полосы с диапазоном числовых значений.

    SplitPane – панель с несколькими разделенными частями.

    TableView – таблица.

    TabPane – панель закладок.

    TextInputControl – базовый класс для текстовых полей TextArea, TextField (расширяется классом PasswordField).

    ToolBar – панель инструментов.

    TreeTableView - таблица данных с неограниченным числом строк.

    TreeView – дерево элементов.

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

Класс MenuItem реализует интерфейс EventTarget и представляет элемент меню.

Класс MenuItem имеет следующие подклассы:

    CheckMenuItem – элемент меню с выбранным и не выбранным состояниями.

    Menu – раскрывающееся меню.

    CustomMenuItem – расширенный элемент меню, расширяется классом SeparatorMenuItem.

    RadioMenuItem – элемент меню – переключатель.

Класс Tab реализует интерфейс EventTarget и представляет закладку панели закладок.

Класс TreeItem<T> реализует интерфейс EventTarget, расширяется классом CheckBoxTreeItem и представляет элемент дерева TreeView.

Класс PopupControl расширяет класс javafx.stage.PopupWindow и реализует интерфейс Skinnable и представляет всплывающее окно без элементов оформления окон и панели заголовка.

Класс PopupControl имеет подклассы ContextMenu и Tooltip, экземпляры которых используются для дополнительного оформления GUI-компонентов.

Класс Tooltip расширяет класс PopupControl и представляет всплывающую при наведении мышки на GUI-компонент Control подсказку.

Класс ContextMenu расширяет класс PopupControl и представляет контекстное меню GUI-компонента Control.

Класс Cell<T> расширяет класс Labeled и представляет ячейку в списках и таблицах ListView, TreeView, TableView.

Класс Cell<T> имеет подклассы IndexedCell<T>, представляющий ячейку с индексом расположения в списке или дереве, и DateCell, представляющий ячейку календаря DatePicker.

Класс IndexedCell<T> расширяет класс Cell<T> и представляет ячейку с индексом, определяющим ее расположение в списке или дереве.

Класс IndexedCell<T> расширяется классами:

    ListCell – ячейка списка ListView.

    TableCell – ячейка таблицы TableView.

    TableRow – строка таблицы TableView.

    TreeCell – ячейка дерева TreeView.

    TreeTableCell – ячейка таблицы TreeTableView.

    TreeTableRow – используется для создания пользовательской строки таблицы TreeTableView.

Абстрактный класс SelectionModel<T> обеспечивает программный интерфейс для выбора элементов списка или строк таблицы.

Класс SelectionModel<T> имеет подклассы:

    MultipleSelectionModel – обеспечивает выбор сразу нескольких элементов. Класс MultipleSelectionModel<T> расширяется абстрактным классом TableSelectionModel, обеспечивающим выбор ячеек таблицы. Абстрактный класс TableSelectionModel<T> реализуется классами TableView.TableViewSelectionModel и TreeTableView.TreeTableViewSelectionModel.

    SingleSelectionModel – обеспечивает выбор только одного элемента.

Абстрактный класс FocusModel<T> обеспечивает наведение фокуса на элемент списка.

Класс FocusModel<T> расширяется классом TableFocusModel<T,TC> модели наведения фокуса в таблице.

Абстрактный класс TableFocusModel<T,TC> реализуется классами TableView.TableViewFocusModel и TreeTableView.TreeTableViewFocusModel.

Абстрактный класс TableColumnBase<S,T> является базовым классом для реализаций, отвечающих за отображение и редактирование содержимого столбца таблицы TableView и TreeTableView.

Класс TableColumnBase<S,T> реализует интерфейсы EventTarget, Styleable и реализуется классами TableColumn, TreeTableColumn.

Абстрактный класс TablePositionBase<TC extends TableColumnBase> представляет позицию строки, столбца, ячейки в таблице.

Класс TablePositionBase<TC extends TableColumnBase> реализуется классами TablePosition, TreeTablePosition.

javafx.scene.control.cell – содержит классы, представляющие ячейки.

Класс CheckBoxListCell<T> расширяет класс javafx.scene.control.ListCell<T> и обеспечивает для компонента javafx.scene.control.ListView<T> отображение флажка на левой стороне и текста элемента списка в оставшейся части списка по горизонтали.

Класс CheckBoxTableCell<S,T> расширяет класс javafx.scene.control.TableCell<S,T> и обеспечивает отображение флажка в столбце таблицы.

Класс CheckBoxTreeCell<T> расширяет класс javafx.scene.control.TreeCell<T> и обеспечивает отображение флажка в дереве элементов.

Класс CheckBoxTreeTableCell<S,T> расширяет класс javafx.scene.control.TreeTableCell<S,T> и обеспечивает отображение флажка с меткой в ячейке таблицы.

Класс ChoiceBoxListCell<T> расширяет класс javafx.scene.control.ListCell<T> и обеспечивает отображение списка выбора в ячейке.

Класс ChoiceBoxTableCell<S,T> расширяет класс javafx.scene.control.TableCell<S,T> и обеспечивает отображение списка выбора в столбце таблицы.

Класс ChoiceBoxTreeCell<T> расширяет класс javafx.scene.control.TreeCell<T> и обеспечивает отображение списка выбора в дереве элементов.

Класс ChoiceBoxTreeTableCell<S,T> расширяет класс javafx.scene.control.TreeTableCell<S,T> и обеспечивает отображение списка выбора в ячейке таблицы.

Класс ComboBoxListCell<T> расширяет класс javafx.scene.control.ListCell<T> и обеспечивает отображение кнопки со списком выбора в ячейке.

Класс ComboBoxTableCell<S,T> расширяет класс javafx.scene.control.TableCell<S,T> и обеспечивает отображение кнопки со списком выбора в столбце таблицы.

Класс ComboBoxTreeCell<T> расширяет класс javafx.scene.control.TreeCell<T> и обеспечивает отображение кнопки со списком выбора в дереве элементов.

Класс ComboBoxTreeTableCell<S,T> расширяет класс javafx.scene.control.TreeTableCell<S,T> и обеспечивает отображение кнопки со списком выбора в ячейке таблицы.

Класс MapValueFactory<T> реализует интерфейс Callback<TableColumn.CellDataFeatures<java.util.Map,T>,ObservableValue<T>> и обеспечивает создание объектов-аргументов метода setCellFactory() класса TableColumn.

Класс ProgressBarTableCell<S> расширяет класс javafx.scene.control.TableCell<S,java.lang.Double> и обеспечивает отображение индикатора загрузки ProgressBar в ячейке.

Класс ProgressBarTreeTableCell<S> расширяет класс javafx.scene.control.TreeTableCell<S,java.lang.Double> и обеспечивает отображение индикатора загрузки ProgressBar в ячейке таблицы TreeTable.

Класс PropertyValueFactory<S,T> реализует интерфейс Callback<TableColumn.CellDataFeatures<S,T>, ObservableValue<T>> и обеспечивает создание объектов-аргументов метода setCellFactory() класса TableColumn.

Класс TextFieldListCell<T> расширяет класс javafx.scene.control.ListCell<T> и обеспечивает отображение текстового поля в ячейке.

Класс TextFieldTableCell<S,T> расширяет класс javafx.scene.control.TableCell<S,T> и обеспечивает отображение текстового поля в столбце таблицы.

Класс TextFieldTreeCell<T> расширяет класс javafx.scene.control.TreeCell<T> и обеспечивает отображение текстового поля в дереве элементов.

Класс TextFieldTreeTableCell<S,T> расширяет класс javafx.scene.control.TreeTreeCell<S,T> и обеспечивает отображение текстового поля в ячейке таблицы.

Класс TreeItemPropertyValueFactory<S,T> реализует интерфейс Callback<TreeTableColumn.CellDataFeatures<S,T>,ObservableValue<T>> и обеспечивает создание объектов-аргументов метода setCellFactory() класса TreeTableColumn.

javafx.scene.effect – обеспечивает создание эффектов для GUI-компонентов.

Абстрактный класс Effect является базовым классом для всех классов, представляющих визуальные эффекты узлов графа сцены.

Эффект связывается с узлом графа сцены с помощью определения Effect-объекта в качестве значения свойства Node.effect и обеспечивает создание нового изображения узла графа сцены, полученного в результате модификации исходного графического изображения узла графа сцены.

JavaFX-эффекты оперируют понятием входа. В качестве одного из входов выступает изображение узла графа сцены, к которому эффект добавляется. Другим входом может служить другой эффект, создавая, таким образом, цепочку эффектов.

Класс Blend расширяет класс Effect и обеспечивает смешивание эффекта Effect с изображением узла Node. В качестве верхнего или нижнего ввода эффекта Blend служит изображение узла Node, а в качестве нижнего или верхнего ввода выступает другой эффект Effect.

Класс Bloom расширяет класс Effect и обеспечивает эффект засвеченности участков изображения, при котором яркие участки изображения начинают светиться.

Класс BoxBlur расширяет класс Effect и обеспечивает эффект блочного размытия.

Класс ColorAdjust расширяет класс Effect и обеспечивает изменение оттенка, насыщенности, яркости и контраста исходного изображения.

Класс ColorInput расширяет класс Effect и обеспечивает в качестве входа для другого эффекта прямоугольник, заполненный определенным цветом.

Класс DisplacementMap расширяет класс Effect и обеспечивает смещение каждого пикселя исходного изображения согласно карте смещения, дополнительно накладывая эффекты общего масштабирования и сдвига.

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

Класс DropShadow расширяет класс Effect и обеспечивает эффект внешней тени.

Класс GaussianBlur расширяет класс Effect и обеспечивает эффект размытия исходного изображения.

Класс Glow расширяет класс Effect и обеспечивает эффект свечения исходного изображения.

Класс ImageInput расширяет класс Effect и обеспечивает в качестве входа для другого эффекта готовое изображение javafx.scene.image.Image.

Класс InnerShadow расширяет класс Effect и обеспечивает эффект внутренней тени.

Класс Lighting расширяет класс Effect и обеспечивает эффект источника света, освещающего исходное изображение.

Абстрактный класс Light является базовым классом для классов, представляющих источники света в эффекте Lighting.

Класс Light имеет следующие подклассы:

    Light.Point – равномерно светящийся во все направления источник света, расположенный в точке трехмерного пространства. Расширяется классом Light.Spot – источником света с направлением и фокусом, позволяющим осветить определенное место на экране.

    Light.Distant – равномерно светящийся удаленный источник света.

Класс MotionBlur расширяет класс Effect и представляет размытие изображения с радиусом и углом для создания эффекта скорости.

Класс PerspectiveTransform расширяет класс Effect и представляет эффект перспективы изображения.

Класс Reflection расширяет класс Effect и представляет эффект отражения изображения.

Класс SepiaTone расширяет класс Effect и представляет эффект состаривания изображения.

Класс Shadow расширяет класс Effect и представляет эффект простой тени – монохромной копии изображения с размытыми краями.

javafx.scene.image – содержит классы для загрузки и показа изображений.

Класс ImageView расширяет класс javafx.scene.Node и обеспечивает отображение изображений, загруженных с помощью класса javafx.scene.image.Image.

Интерфейс PixelReader обеспечивает чтение пикселей изображения.

Перечисление PixelFormat.Type содержит типы форматов представления пикселей изображения:

Класс PixelFormat представляет формат данных изображения.

Класс WritablePixelFormat расширяет класс PixelFormat и представляет формат, который может быть использован для записи пиксельных данных из изображения.

Класс WritableImage представляет изображение, которое создается из пиксельных данных.

Класс WritableImage используется в таких методах как SwingFXUtils.toFXImage(), SWTFXUtils.toFXImage(), Scene.doSnapshot() и Node.snapshot().

Интерфейс PixelWriter обеспечивает запись пиксельных данных изображения.

javafx.scene.input – обеспечивает обработку событий, инициированных мышкой, клавиатурой или жестами.

Интерфейс InputMethodRequests обеспечивает ввод текста для узлов Node редактирования текста.

Объект InputMethodRequests возвращается методом getInputMethodRequests() и служит аргументом метода setInputMethodRequests(InputMethodRequests value) класса Node.

Класс Clipboard представляет буфер обмена операций «копировать», «вырезать» и «вставить».

Класс Clipboard расширяется классом Dragboard, представляющим буфер обмена операций перетаскивания Drag and Drop.

Класс ClipboardContent расширяет класс java.util.HashMap<DataFormat,java.lang.Object> и представляет контейнер данных разного формата для объекта Clipboard буфера обмена.

Класс GestureEvent расширяет класс InputEvent и представляет событие сенсорного экрана или сенсорной панели.

Класс GestureEvent расширяется классами:

    RotateEvent – круговое движение двумя пальцами.

    ScrollEvent – прокручивание.

    SwipeEvent – проведение пальцами по сенсорному экрану или панели в одном направлении.

    ZoomEvent – масштабирование двумя пальцами.

Класс InputEvent расширяет класс javafx.event.Event и представляет события ввода пользователем данных.

Класс InputEvent расширяется классами:

    DragEvent – событие перетаскивания данных.

    InputMethodEvent – событие изменения текста узла графа сцены методом ввода.

    KeyEvent – событие клавиатуры.

    MouseEvent – событие мышки.

    ContextMenuEvent – событие открытия контекстного меню.

    GestureEvent – событие сенсорного экрана или сенсорной панели.

    TouchEvent – событие прикосновения пальцем сенсорного экрана или сенсорной панели.

Класс InputMethodEvent расширяет класс InputEvent и представляет событие изменения текста узла графа сцены методом ввода.

Абстрактный класс KeyCombination представляет комбинацию клавиш, используемую в качестве горячих клавиш и состоящую из главной клавиши и набора вспомогательных клавиш, при этом вспомогательную клавишу представляет статический класс KeyCombination.Modifier.

Класс KeyCombination расширяется классами KeyCharacterCombination и KeyCodeCombination, представляющими комбинации клавиш с главной клавишей, определяемой символом клавиши или ее кодом соответственно.

Класс KeyEvent расширяет класс InputEvent и представляет событие клавиатуры.

Класс Mnemonic связывает комбинацию клавиш KeyCombination с узлом Node графа сцены.

Класс MouseEvent расширяет класс InputEvent и представляет событие мышки.

Класс MouseEvent расширяется классом MouseDragEvent, представляющим событие перетаскивание мышкой.

Класс PickResult обеспечивает информацию о результатах событий MouseEvent, MouseDragEvent, DragEvent, GestureEvent, ContextMenuEvent и TouchPoint выбора узла графа сцены.

Класс RotateEvent расширяет класс GestureEvent и представляет событие, вызванное круговым движением двумя пальцами на сенсорном экране или панели.

Класс ScrollEvent расширяет класс GestureEvent и представляет событие прокручивания.

Класс SwipeEvent расширяет класс GestureEvent и представляет событие проведения пальцами по сенсорному экрану или панели в одном направлении.

Класс TouchEvent расширяет класс InputEvent и представляет событие прикосновения.

Класс TouchPoint представляет точку касания.

Класс ZoomEvent расширяет класс GestureEvent и представляет событие масштабирования двумя пальцами.

javafx.scene.layout – содержит контейнеры, компонующие свои дочерние узлы графа сцены различным образом.

Класс Region расширяет класс javafx.scene.Parent и представляет область экрана, к которой может быть применен CSS-стиль и которая может содержать другие узлы.

Класс Region имеет следующие подклассы:

    Абстрактный класс javafx.scene.chart.Axis<T> - базовый класс для классов, представляющих оси диаграмм.

    Абстрактный класс javafx.scene.chart.Chart – базовый класс для классов, представляющих диаграммы.

    Класс javafx.scene.layout.Pane – базовый класс для классов, представляющих панели компоновки.

    Абстрактный класс Control - базовый класс для классов, представляющих элементы контроля GUI-интерфейса.

Класс Pane расширяет класс Region и является базовым классом для классов, представляющих панели компоновки.

Подклассами класса Pane являются следующие классы:

    AnchorPane – компонует дочерний узел относительно сторон панели с учетом смещения.

    BorderPane – компонует дочерние узлы в верхней, нижней, правой, левой и центральной части панели.

    FlowPane – компонует дочерние узлы в ряды или столбцы.

    GridPane – компонует дочерние узлы в табличку.

    HBox – компонует дочерние узлы в один ряд.

    StackPane – компонует дочерние узлы в слои по оси Z, где первый узел лежит в основании стека, а последний узел – в вершине стека.

    TextFlow - компонует узлы Text.

    TilePane – компонует дочерние узлы в таблицу с одинаковыми ячейками.

    VBox – компонует дочерние узлы в один столбец.

Сам класс Pane обеспечивает абсолютное позиционирование дочерних узлов и в процессе компоновки только подгоняет размеры дочерних узлов под их предпочтительные размеры, не изменяя их позиций. При компоновке самой панели Pane ее предпочтительные размеры рассчитываются как размеры, достаточные для включения в панель ее дочерних узлов.

При добавлении узла в панель компоновки, он сразу автоматически компонуется в соответствии с механизмом компоновки данной панели. Сам механизм компоновки запускается автоматически при развертывании приложения и создания сцены, содержащей панель компоновки.

В процессе работы приложения, как только граф сцены обнаруживает изменение состояния узлов, влияющее на компоновку, он вызывает метод requestLayout(). Метод requestLayout() маркирует измененную ветвь графа сцены как требующую компоновки при генерации следующего события Pulse, инициирующего вызов метода layout() корневого узла ветви. Метод layout() осуществляет нисходящую компоновку дочерних узлов ветви, в процессе которой производится цепочка вызовов методов layoutChildren() родительских узлов для компоновки дочерних узлов.

Как уже упоминалось, компоновка пытается подогнать размеры узлов под их предпочтительные размеры. Однако размеры изменяются только у тех узлов, метод isResizable() которых возвращает true.

Классы узлов с изменяемыми размерами – это классы Region, Control, WebView, а классы узлов с неизменяемыми размерами – это классы Group, Shape, Text.

javafx.scene.media – обеспечивает интеграцию аудио и видео контента в JavaFX-приложения.

Класс AudioClip обеспечивает проигрывание аудио ресурсов в JavaFX-приложениях.

Класс AudioEqualizer представляет эквалайзер плеера MediaPlayer.

Абстрактный класс Track представляет трек медиаресурса.

Класс Track расширяется классами AudioTrack, SubtitleTrack и VideoTrack, представляющими аудио и видео треки соответственно.

Класс EqualizerBand представляет частотную полосу аудиоспектра эквалайзера AudioEqualizer плеера MediaPlayer.

Класс Media представляет медиаконтент плеера MediaPlayer.

Класс MediaErrorEvent расширяет класс javafx.event.Event и представляет события ошибки обработки медиаконтента.

Класс MediaMarkerEvent расширяет класс javafx.event.ActionEvent и представляет событие медиамаркера.

Класс MediaException расширяет класс java.lang.RuntimeException и представляет ошибку обработки медиаконтента.

Класс MediaPlayer обеспечивает управление воспроизводством медиаконтента javafx.scene.media.Media узла javafx.scene.media.MediaView.

Класс MediaView расширяет класс javafx.scene.Node и обеспечивает отображение медиаконтента javafx.scene.media.Media, воспроизводимого плеером javafx.scene.media.MediaPlayer.

javafx.scene.paint – позволяет заполнять области цветом или градиентом цвеКласс Color расширяет класс Paint, реализует интерфейс javafx.animation.Interpolatable<Color> и представляет sRGB-цвет.

Класс ImagePattern расширяет класс Paint и представляет шаблон, созданный на основе изображения, с помощью которого можно заполнять геометрические формы, используя метод setFill().

Класс LinearGradient расширяет класс Paint и представляет линейный градиент.

Абстрактный класс Material является базовым классом для классов, представляющих материал 3D-поверхности.

Класс PhongMaterial расширяет абстрактный класс Material и представляет отражающий материал, который отражает свет.

Класс RadialGradient расширяет класс Paint и представляет радиальный градиент.

Класс Stop используется для создания объектов LinearGradient и RadialGradient.

Абстрактный класс Paint является базовым классом для классов, представляющих цвета и градиенты заполнения узлов графа сцены.

Класс Paint имеет следующие подклассы:

    Color – представляет sRGB-цвет.

    LinearGradient – представляет линейный градиент.

    RadialGradient – представляет радиальный градиент.

    ImagePattern – представляет шаблон, созданный на основе изображения, с помощью которого можно заполнять геометрические формы.тов и создавать цветной фон сцены.

javafx.scene.shape – содержит классы 2D-графики.

Абстрактный класс Shape расширяет класс javafx.scene.Node и является базовым классом для классов, представляющих геометрические формы.

Класс Shape имеет следующие подклассы:

    Arc – дуга.

    Circle – окружность.

    CubicCurve – кубическая кривая.

    Ellipse – эллипс.

    Line – линия.

    Path – объединяет геометрические формы в одну фигуру.

    Polygon – многоугольник.

    Polyline – ломанная линия.

    QuadCurve – квадратичная кривая.

    Rectangle – прямоугольник.

    SVGPath – обеспечивает создание фигуры на основе SVG-пути.

    Text – текст.

Абстрактный класс Mesh является базовым классом для представления 3D-геометрических поверхностей.

Класс TriangleMesh расширяет абстрактный класс Mesh и определяет 3D геометрический объект, который представляет триангулированную геометрическую сетку.

Класс MeshView расширяет класс Shape3D и обеспечивает отображение 3D-поверхности Mesh.

Абстрактный класс PathElement представляет команды, формирующие геометрические объекты, из которых создается фигура Path.

Класс PathElement имеет следующие подклассы:

    ArcTo – формирует дугу.

    ClosePath – завершает фигуру Path.

    CubicCurveTo – формирует кубическую кривую.

    HLineTo – создает горизонтальную линию.

    LineTo – формирует линию.

    MoveTo – перемещает текущую позицию.

    QuadCurveTo – формирует квадратичную кривую.

    VLineTo – создает вертикальную линию.

Абстрактный класс Shape3D расширяет класс javafx.scene.Node и является базовым классом для классов, представляющих геометрические формы в 3D-пространстве.

Класс Shape3D имеет следующие подклассы:

    Box – куб.

    Cylinder – цилиндр.

    MeshView – 3D-поверхность.

    Sphere – сфера.

javafx.scene.text – обеспечивает встраивание текста в граф сцены.

Класс Font представляет шрифт, используемый для отображения текста в JavaFX-приложениях.

Класс Text расширяет класс Shape и представляет текст.

Класс TextFlow расширяет класс javafx.scene.layout.Pane и представляет панель компоновки для узлов Rich-текста.

javafx.scene.transform – обеспечивает пространственные трансформации графических объектов: вращение, масштабирование, перемещение и сдвиг.

Абстрактный класс Transform представляет такие трансформации узла графа сцены как вращение, масштабирование, сдвиг и перемещение. Объект Transform служит элементом списка, возвращаемым методом Node.getTransforms().

Класс Transform имеет следующие подклассы:

    Affine – аффинные преобразования.

    Rotate – вращение.

    Scale – масштабирование.

    Shear – срезающее преобразование.

    Translate – перемещение.

javafx.scene.web – позволяет добавлять HTML-контент в JavaFX-приложения.

Класс HTMLEditor расширяет класс javafx.scene.control.Control и представляет HTML-редактор.

Класс WebEngine обеспечивает обработку отображаемой узлом WebView Web-страницы, включая ее загрузку, создание DOM-модели загруженной Web-страницы и выполнения JavaScript-кода страницы.

Класс WebHistory представляет историю сессии, связанную с экземпляром WebEngine.

Объект WebHistory может быть получен методом getHistory() класса WebEngine.

В данной реализации история сессии – это стек объектов WebHistory.Entry, представляющих посещенные Web-страницы.

Класс WebView расширяет класс javafx.scene.Parent и представляет узел графа сцены, отображающий HTML-контент.

javafx.stage – содержит контейнеры верхнего уровня окна JavaFX-приложения.

Класс DirectoryChooser представляет диалоговое окно для выбора папок локальной файловой системы настольного компьютера пользователя.

Класс FileChooser представляет диалоговое окно для выбора файлов локальной файловой системы настольного компьютера пользователя.

Класс Popup расширяет класс PopupWindow и является его реализацией для создания и отображения всплывающих окон уведомлений, меню и др.

Абстрактный класс PopupWindow расширяет класс Window и является базовым классом для всплывающих окон подсказок, уведомлений, контекстных меню.

Всплывающее окно является вторичным окном, обязательно имеющим родительское окно, и не содержит обычных элементов оформления окон (панель заголовка, рамка).

Класс PopupWindow имеет следующие подклассы:

    Popup – всплывающее окно уведомлений, меню и др.

    javafx.scene.control.PopupControl – всплывающее окно подсказки элементов контроля.

Класс Screen обеспечивает получение характеристик физических экранов, на которых отображается JavaFX-приложение.

В случае многоэкранной конфигурации JavaFX-приложение может отображаться на двух или более независимых мониторах, на двух или более мониторах, где один из мониторов является основным, а другие отображают копии, на двух или более мониторах, формирующих виртуальное устройство.

Класс Stage представляет графический контейнер верхнего уровня окна JavaFX-приложения.

Для Stage-объекта самого верхнего уровня родительский Window-объект равен нулю.

Класс Window представляет окно JavaFX-приложения и является корневым классом иерархии JavaFX-окон верхнего уровня.

Экземпляр класса Window нельзя создать программным способом, Window-объекты создаются средой выполнения при развертывании JavaFX-приложения и программным способом их можно получить только как свойства графических объектов Stage, PopupWindow и Scene, возвращающие родительские Window-объекты.

Самое главное окно JavaFX-приложения, определяющее его рабочую область, представлено Stage-объектом с родительским Window-объектом равным нулю.

Класс Window имеет следующие подклассы:

    PopupWindow – базовый класс всплывающих окон.

    Stage – графический контейнер верхнего уровня.

Класс WindowEvent представляет события окна JavaFX-приложения, обрабатываемые обработчиком javafx.event.EventHandler<WindowEvent>.

javafx.util – содержит вспомогательные классы и интерфейсы JavaFX API.

Интерфейс Builder<T> представляет фабрику создания JavaFX-объектов и имеет метод T build().

Интерфейс Builder<T> используется платформой JavaFX для работы с языком FXML.

Интерфейс BuilderFactory обеспечивает создание объекта Builder с помощью метода Builder<?> getBuilder(java.lang.Class<?> type).

Интерфейс BuilderFactory используется платформой JavaFX 2 для работы с языком FXML.

Интерфейс Callback<P,R> используется для создания различного рода обработчиков, так как содержит метод R call(P param), вызываемый средой выполнения, которая передает в метод значение параметра P и использует возвращаемый методом объект R.

Класс Duration реализует интерфейс java.lang.Comparable<Duration> и представляет продолжительность времени.

Класс Pair<K,V> обеспечивает создание связанной пары имя-значение.

Абстрактный класс StringConverter<T> обеспечивает соответствие между строками и объектами.

Класс StringConverter<T> расширяется классом javafx.scene.chart.NumberAxis.DefaultFormatter и классами пакета javafx.util.converter.

javafx.util.converter – содержит реализации абстрактного класса javafx.util.StringConverter<T>, которые могут быть использованы при применении программного интерфейса JavaFX binding API, а также компонентами ComboBox и ChoiceBox.

netscape.javascript – обеспечивает использование JavaScript-кода в Java-коде.

Класс JSObject обеспечивает вызов JavaScript-кода из JavaFX-апплета.

Объект JSObject получается методом getWebContext() класса javafx.application.HostServices, экземпляр которого, в свою очередь, получается методом getHostServices() класса javafx.application.Application.

Классы пакетов программного интерфейса JavaFX API предоставляют для использования в разработке свои публичные свойства, поля, конструкторы и методы. При этом свойства записи-чтения JavaFX-классов доступны с помощью традиционных методов get и set, а также методов JavaFX Beans свойств:

public ХХХProperty ХХХProperty().

Свойства только для чтения JavaFX-классов доступны с помощью методов get и методов JavaFX Beans свойств.