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

Dor*_*thy 37 stage frame maximize-window javafx-2

我正在使用JavaFX 2.我希望我的框架打开最大化,但我没有看到方法.我在互联网上搜索了一下没有成功.对于我看到的阶段setFullScreen(),setIconified()但我没有看到任何类似的东西setMaximized().

Han*_*ans 134

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

primaryStage.setMaximized(true);
Run Code Online (Sandbox Code Playgroud)

  • 如果上面的代码仍然不起作用,则对这些情况进行一个小补充 - 在调用 show() 之后调用 setMaximized()。 (2认同)

pmo*_*ule 32

在评估随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());
Run Code Online (Sandbox Code Playgroud)

(在WindowButtons.java中找到类似的代码)

"最大化"按钮仍然处于启用状态,单击它时,窗口会增长一些(Windows操作系统).在此之后,"最大化"按钮被禁用.在提供的示例中,标准按钮被替换.也许这仍然是一个问题.

  • 这也不是技术上最大化的模式.它只是一个非最大化的窗口,是屏幕的大小. (5认同)

Fra*_*oth 7

更好地使用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());
Run Code Online (Sandbox Code Playgroud)

  • 与另一个答案一样,这并没有最大化; 它与屏幕大小相同. (3认同)

Fla*_*ash 7

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