我正在使用JavaFX 2。我希望我的窗体在打开时是最大化的,但我没找到该怎么做。我在网上搜索了一下但没有成功。对于舞台(Stage),我看到有
setFullScreen()
和setIconified()
,但我没有看到像setMaximized()
这样的函数。setFullScreen()
和setIconified()
,但我没有看到像setMaximized()
这样的函数。Java 8版的Stage类提供了一个maximized属性,可以按以下方式设置:
primaryStage.setMaximized(true);
当评估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操作系统)。此后,'最大化'按钮将被禁用。 在提供的示例中,标准按钮被替换。也许这仍然是一个问题。
Screen.getScreens()
并找到窗口所在的屏幕。JavaFX 在很多方面感觉像 Swing 一样 :-) - Peter BeckerprimaryStage.setMaximized(true);
,它可以填满整个屏幕。请注意,如果您删除最大化/最小化按钮,则应用程序将填满整个屏幕,并删除任务栏,因此请注意您是否有任何initStyles
。setMaximized
,然后使用getVisualBounds
来设置舞台的X、Y、宽度和高度。 - Bjørn Vårdal更好地使用多屏兼容的最大化逻辑:
// 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对象。
stage.hide();
隐藏舞台,然后使用stage.setMaximized(true);
,最后再调用stage.show();
,这样就解决了问题。不管怎样,还是谢谢你的提示! :) - Kami