Класс Application
- javafx.application.Application
Прямые известные подклассы:
public abstract class Application extends Object
Жизненный цикл
Точкой входа для JavaFX-приложений является класс Application. При запуске приложения среда выполнения JavaFX выполняет следующие действия в определённом порядке:
- Создаёт экземпляр указанного класса Application
- Вызывает метод
init() - Вызывает метод
start(javafx.stage.Stage) - Ожидает завершения работы приложения, что происходит в следующих случаях:
- приложение вызывает
Platform.exit() - последнее окно было закрыто и атрибут
implicitExitобъектаPlatformимеет значение true
- приложение вызывает
- Вызывает метод
stop()
Обратите внимание, что метод start является абстрактным и должен быть переопределён. Методы init и stop имеют конкретные реализации, которые ничего не делают.
Вызов метода Platform.exit() является предпочтительным способом явного завершения JavaFX-приложения. Прямой вызов метода System.exit(int) также допустим, но не позволяет выполнить метод stop() приложения.
JavaFX-приложение не должно пытаться использовать JavaFX после завершения инструментария FX или из метода ShutdownHook, то есть после возвращения метода stop() или вызова метода System.exit(int).
Параметры
Параметры приложения можно получить, вызвав метод getParameters() из метода init() или в любой момент после вызова метода init.
Потоки
JavaFX создаёт поток приложения для запуска метода start, обработки событий ввода и выполнения временных линий анимации. Создание объектов JavaFX Scene и Stage, а также изменение операций построения графиков сцены для актуальных объектов (тех объектов, которые уже присоединены к сцене) должны выполняться в потоке JavaFX-приложения.
Запускающий Java-загрузчик загружает и инициализирует указанный класс Application в потоке JavaFX-приложения. Если в классе Application нет метода main или если метод main вызывает Application.launch(), то экземпляр Application создаётся в потоке JavaFX-приложения.
Метод init вызывается в потоке запускающего компонента, а не в потоке JavaFX-приложения. Это означает, что приложение не должно создавать объект Scene или Stage в методе init. Приложение может создавать другие объекты JavaFX в методе init.
Все необработанные исключения в потоке JavaFX-приложения, возникающие во время обработки событий, выполнения временных линий анимации или любого другого кода, передаются обработчику необработанных исключений потока uncaught
exception handler.
Пример
Следующий пример продемонстрирует простое JavaFX-приложение.
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;
public class MyApp extends Application {
public void start(Stage stage) {
Circle circ = new Circle(40, 40, 30);
Group root = new Group(circ);
Scene scene = new Scene(root, 400, 300);
stage.setTitle("My JavaFX Application");
stage.setScene(scene);
stage.show();
}
} Приведённый выше пример приведет к следующему:
С тех пор:
JavaFX 2.0
-
Краткое описание вложенных классов
Вложенные классы Модификатор и тип Класс и описание static classApplication.ParametersСодержит набор параметров для приложения.
-
Краткое описание полей
Поля Модификатор и тип Поле и описание static StringSTYLESHEET_CASPIANКонстанта для пользовательского стиля агента для темы "Caspian".static StringSTYLESHEET_MODENAКонстанта для пользовательского стиля агента для темы "Modena".
-
Краткое описание конструкторов
Конструкторы Конструктор и описание Application()Создаёт новый экземплярApplication.
-
Краткое описание методов
Все методыСтатические методыМетоды экземпляровАбстрактные методыКонкретные методы Модификатор и тип Метод и описание HostServicesgetHostServices()Получает поставщика HostServices для этого приложения.Application.ParametersgetParameters()Возвращает параметры для этого приложения, включая любые аргументы, переданные через командную строку, и параметры, указанные в файле JNLP для апплета или приложения WebStart.static StringgetUserAgentStylesheet()Получает пользовательский стиль агента, используемый всем приложением.voidinit()Метод инициализации приложения.static voidlaunch(Class<? extends Application> appClass, String... args)Запустить автономное приложение.static voidlaunch(String... args)Запустить автономное приложение.voidnotifyPreloader(Preloader.PreloaderNotification info)Уведомляет загрузчик предварительной версии о уведомлении, сгенерированном приложением.static voidsetUserAgentStylesheet(String url)Устанавливает пользовательский стиль агента, используемый всем приложением.abstract voidstart(Stage primaryStage)Основная точка входа для всех JavaFX-приложений.voidstop()Этот метод вызывается при завершении работы приложения и предоставляет удобное место для подготовки к выходу из приложения и уничтожения ресурсов.
-
Подробное описание поля
-
STYLESHEET_CASPIAN
public static final String STYLESHEET_CASPIAN
Константа для пользовательского стиля агента для темы "Caspian". Caspian — это тема, поставлявшаяся по умолчанию в JavaFX 2.x.С момента:
JavaFX 8.0
См. также:
-
STYLESHEET_MODENA
public static final String STYLESHEET_MODENA
Константа для пользовательского стиля агента для темы "Modena". Modena — это тема по умолчанию для JavaFX 8.x.С момента:
JavaFX 8.0
См. также:
-
-
Подробное описание конструктора
-
Application
public Application()
Создаёт новыйApplicationэкземпляр.
-
-
Подробное описание метода
-
launch
public static void launch(Class<? extends Application> appClass, String... args)Запуск автономного приложения. Этот метод обычно вызывается из метода main(). Он не должен вызываться более одного раза, иначе будет выброшено исключение.Метод launch не возвращается, пока приложение не завершит работу, либо через вызов Platform.exit, либо после закрытия всех окон приложения.
Типовое использование:
public static void main(String[] args) { Application.launch(MyApp.class, args); }гдеMyApp— подкласс Application.Параметры:
appClass— класс приложения, который создаётся и выполняется запускающим модулем.Исключения:
IllegalStateException— если этот метод вызывается более одного раза.
-
launch
public static void launch(String... args)
Запуск автономного приложения. Этот метод обычно вызывается из метода main(). Он не должен вызываться более одного раза, иначе будет выброшено исключение. Это эквивалентно launch(TheClass.class, args), где TheClass — класс, в котором находится метод, вызывающий launch. Он должен быть подклассом Application, иначе будет выброшено исключение RuntimeException.Метод launch не возвращается, пока приложение не завершит работу, либо через вызов Platform.exit, либо после закрытия всех окон приложения.
Типовое использование:
public static void main(String[] args) { Application.launch(args); }Параметры:
args— аргументы командной строки, передаваемые приложению. Приложение может получить эти параметры, используя методgetParameters().Исключения:
IllegalStateException— если этот метод вызывается более одного раза.
-
init
public void init() throws ExceptionМетод инициализации приложения. Этот метод вызывается сразу после загрузки и создания класса Application. Приложение может переопределить этот метод для выполнения инициализации перед фактическим запуском приложения.Реализация этого метода, предоставляемая классом Application, ничего не делает.
ПРИМЕЧАНИЕ: Этот метод не вызывается в потоке JavaFX Application. Приложение не должно создавать Scene или Stage в этом методе. Приложение может создавать другие объекты JavaFX в этом методе.
Исключения:
-
start
public abstract void start(Stage primaryStage) throws ExceptionГлавная точка входа для всех приложений JavaFX. Метод start вызывается после возвращения метода init и после готовности системы к запуску приложения.ПРИМЕЧАНИЕ: Этот метод вызывается в потоке JavaFX Application.
Параметры:
primaryStage— основное окно (stage) для этого приложения, на котором может быть установлена сцена приложения. Основное окно будет встроено в браузер, если приложение запускалось как апплет. Приложения могут создавать другие окна, если это необходимо, но они не будут основными окнами и не будут встроены в браузер.Исключения:
-
stop
public void stop() throws ExceptionЭтот метод вызывается при завершении работы приложения и предоставляет удобное место для подготовки к завершению работы приложения и уничтожению ресурсов.Реализация этого метода, предоставляемая классом Application, ничего не делает.
ПРИМЕЧАНИЕ: Этот метод вызывается в потоке JavaFX Application.
Исключения:
-
getHostServices
public final HostServices getHostServices()
Получает поставщика HostServices для этого приложения. Это обеспечивает возможность получения кодовой базы и базы документации для этого приложения, а также доступа к окружающей веб-странице.Возвращает:
поставщик HostServices
-
getParameters
public final Application.Parameters getParameters()
Получает параметры для этого приложения, включая любые аргументы, переданные в командной строке, и любые параметры, указанные в файле JNLP для апплета или приложения WebStart.ПРИМЕЧАНИЕ: этот метод не следует вызывать из конструктора Application, так как он вернёт null. Он может вызываться в методе init() или в любое время после него.
Возвращает:
параметры для этого приложения или null, если вызваны из конструктора.
-
notifyPreloader
public final void notifyPreloader(Preloader.PreloaderNotification info)
Уведомляет загрузчик о событии, созданном приложением. Код приложения вызывает этот метод с PreloaderNotification, который доставляется методуPreloader.handleApplicationNotification. Это в первую очередь полезно в тех случаях, когда приложение хочет показать прогресс загрузчика во время длительной операции инициализации приложения.ПРИМЕЧАНИЕ: уведомление будет доставлено только методу handleApplicationNotification() загрузчика; это означает, например, что если этот метод вызывается с ProgressNotification, это уведомление не будет доставлено методу
Preloader.handleProgressNotification.Параметры:
info— уведомление загрузчика, созданное приложением
-
getUserAgentStylesheet
public static String getUserAgentStylesheet()
Получает пользовательский стиль агента, используемый во всём приложении. Используется для предоставления стилей по умолчанию для всех элементов пользовательского интерфейса и других узлов. Значение null означает, что используется платформа по умолчанию.ПРИМЕЧАНИЕ: Этот метод должен вызываться в потоке JavaFX Application.
Возвращает:
URL-адрес стиля в виде строки.
С момента:
JavaFX 8.0
-
setUserAgentStylesheet
public static void setUserAgentStylesheet(String url)
Устанавливает пользовательский стиль агента, используемый во всём приложении. Используется для предоставления стилей по умолчанию для всех элементов пользовательского интерфейса и других узлов. В каждой новой версии JavaFX может быть новое значение по умолчанию, поэтому, чтобы гарантировать согласованность, вам необходимо вызвать этот метод и выбрать значение по умолчанию для вашего приложения. Значение null восстановит стиль по умолчанию платформы. Этот параметр также можно установить в командной строке с помощью-Djavafx.userAgentStylesheetUrl=[URL]Установка в командной строке переопределяет всё, что задано этим методом в коде.ПРИМЕЧАНИЕ: Этот метод должен вызываться в потоке JavaFX Application.
Параметры:
url— URL-адрес стиля в виде строки.С момента:
JavaFX 8.0
-
© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.