如何将JavaFX Stage / Frame设置为最大化

时间:2011-07-28 19:27:43

标签: frame stage javafx-2 maximize-window

我正在使用JavaFX 2.我希望我的框架打开最大化,但我没有看到方法。我在互联网上搜索了一下没有成功。对于舞台,我看到setFullScreen()setIconified(),但我看不到setMaximized()之类的内容。

5 个答案:

答案 0 :(得分:128)

Stage类的Java 8实现提供了一个最大化的属性,可以按如下方式设置:

primaryStage.setMaximized(true);

答案 1 :(得分:31)

在评估随JavaFX 2.0 SDK样本提供的Ensemble.jar的源代码时,实现窗口最大化的当前有效方法是

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操作系统)。在此之后,“最大化”按钮被禁用。在提供的示例中,标准按钮被替换。也许这仍然是一个问题。

答案 2 :(得分:7)

更好地使用兼容多屏幕最大化逻辑:

// 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());

答案 3 :(得分:7)

尝试这个更简单的代码 primaryStage.setMaximized(true); 它填满了整个屏幕 。请注意,如果您删除最大化/最小化按钮,应用程序将填满整个屏幕,同时删除任务栏,如果您有任何<{p>},请移除initStyles

答案 4 :(得分:-5)

使用此选项删除最小化,最大化按钮:

primaryStage.initStyle(StageStyle.UTILITY);

其中primaryStage是Stage对象。