Основой для создания графического интерфейса в JavaFX является класс javafx.stage.Stage. По сути он является контейнером, в который помещаются все остальные компоненты интерфейса. Его конкретная реализация зависит от платформы, на которой запускается приложение. Так, на десктопах это будет отдельное графическое окно, а на мобильных устройствах интерфейс может представлять весь экран устройства.
В программе на JavaFX можно использовать множество объектов Stage, но один из них является основным. При запуске приложения основной объект Stage создается средой JavaFX и передается в метод start():
@Override public void start(Stage primaryStage) { }
Этот объект Stage определяет главное окно или экран программы. Однако внутри приложения мы также можем создавать другие объекты Stage - другие графические окна.
Класс Stage унаследован от класса javafx.stage.Window, который опредляет базовые возможности окна приложения.
Stage позволяет управлять позиционированием, размерами и некоторыми другими настройками окна приложения. Рассмотрим некоторые основные методы класса Stage:
close(): закрывает объект Stage (на десктопах по сути закрывает окно)
hide(): cкрывает окно
centerOnScreen(): располагает окно в центре экрана
toBack(): перемещает окно на задний план
toFront(): перемещает окно на передний план
sizeToScene(): устанавливает размеры окна в соответствии с размерами содержимого объекта Scene
show(): отображает окно
getX(): возвращает x-координату окна
getY(): возвращает y-координату окна
getWidth(): возвращает ширину
getHeight(): возвращает высоту
getScene(): возвращает объект Scene окна
getOpacity(): возвращает значение прозрачности
getTitle(): возвращает заголовок
getMaxHeight(): возвращает максимальную высоту
getMaxWidth(): возвращает максимальную ширину
getMinHeight(): возвращает минимальную высоту
getMinWidth(): возвращает минимльную ширину
getStyle(): возвращает стиль окна в виде объекта StagesStyle
getModality(): возвращает модальность окна в виде объекта Modality
getOwner(): возвращает родительское окно в виде объекта Window, которое владеет текущим окном
getTitle(): возвращает заголовок
initModality(Modality modality): устанавливает модальность окна
initOwner(Window owner): устанавливает родительское окно
initStyle(StageStyle style): устанавливает стиль окна
setAlwaysOnTop(boolean value): при передаче значения true окно будет всегда располагаться поверх других окон
setFullScreen(boolean value): при передаче значения true окно раскрывается на весь экран
setOpacity(double value): устанавливает прозрачность
setResizable(boolean value): при передачи значения true позволяет изменять размеры окна (растягивать его и сжимать)
setScene(Scene value): устанавливает сцену (объект Scene) для объекта Stage
setTitle(String value): устанавливает заголовок окна
setMaxHeight(double value): устанавливает максимальную высоту
setMaxWidth(double value): устанавливает максимальную ширину
setMinHeight(double value): устанавливает минимальную высоту
setMinWidth(double value): устанавливает минимальную ширину
setHeight(double value): устанавливает высоту окна
setWidth(double value): устанавливает ширину окна
setX(double value): устанавливает координату X окна, то есть положение по горизонтали
setY(double value): устанавливает координату Y окна, то есть положение по вертикали
При простейшего создания окна:
import javafx.application.Application; import javafx.stage.Stage; public class Main extends Application{ public static void main(String[] args) { launch(args); } @Override public void start(Stage stage) { stage.setTitle("Hello JavaFX"); // установка заголовка stage.setWidth(250); // установка ширины stage.setHeight(150); // установка длины stage.show(); // отображение окна на экране } }