Как установить JavaFX Stage/Frame в максимизированный
Я использую JavaFX 2. Я хочу, чтобы мой кадр открывался в максимальном размере, но я не вижу пути. Я немного искал в интернете, но безуспешно. Для этапа я вижу setFullScreen()
а также setIconified()
но я не вижу ничего подобного setMaximized()
,
5 ответов
При оценке исходного кода Ensemble.jar, предоставленного с образцами JavaFX 2.0 SDK, в настоящее время действительным способом достижения максимизации окна является
Screen screen = Screen.getPrimary();
Rectangle2D bounds = screen.getVisualBounds();
primaryStage.setX(bounds.getMinX());
primaryStage.setY(bounds.getMinY());
primaryStage.setWidth(bounds.getWidth());
primaryStage.setHeight(bounds.getHeight());
(вы найдете похожий код в WindowButtons.java)
Кнопка "Развернуть" все еще активна, и при нажатии на нее окна будут расти немного больше (ОС Windows). После этого кнопка "развернуть" отключается. В приведенном примере стандартные кнопки заменены. Может быть, это все еще проблема.
Реализация Java 8 класса Stage обеспечивает максимизированное свойство, которое можно установить следующим образом:
primaryStage.setMaximized(true);
Попробуйте этот более простой код primaryStage.setMaximized(true);
и он заполняет весь экран. обратите внимание, что если вы удалите кнопки "Развернуть / Свернуть", приложение заполнит весь экран, а также удалит панель задач, так что initStyles
если у тебя есть
Лучше использовать Multi-Screen совместимую логику максимизации:
// Get current screen of the stage
ObservableList<Screen> screens = Screen.getScreensForRectangle(new Rectangle2D(stage.getX(), stage.getY(), stage.getWidth(), stage.getHeight()));
// Change stage properties
Rectangle2D bounds = screens.get(0).getVisualBounds();
stage.setX(bounds.getMinX());
stage.setY(bounds.getMinY());
stage.setWidth(bounds.getWidth());
stage.setHeight(bounds.getHeight());
Используйте это, чтобы удалить кнопки "Развернуть", "Развернуть":
primaryStage.initStyle(StageStyle.UTILITY);
Где primaryStage - это ваш объект Stage.