Javafx stage resizeable false和maximized true隐藏任务栏

时间:2016-03-24 10:16:49

标签: java javafx-8

在我的JavaFX FXML应用程序中,当我将resizable设置为false并最大化为true时,窗口变得最大化但任务栏被隐藏。我在Windows 7 64位上使用Netbeans 8.0.2和JDK 1.8.60

在Netbeans中,我按照步骤创建了一个新的JavaFX FXML应用程序。对于生成的默认代码,我在start函数中添加了以下两行。

stage.setResizable(false);
stage.setMaximized(true);

因此最终的启动功能如下

public void start(Stage stage) throws Exception {
    Parent root = FXMLLoader.load(getClass().
        getResource("FXMLDocument.fxml"));

    Scene scene = new Scene(root);

    stage.setScene(scene);
    stage.setResizable(false);
    stage.setMaximized(true);
    stage.show();
}

现在,当我运行应用程序时,窗口最大化,标题栏可见,但任务栏不可见。我应该如何解决这个问题,即让任务栏可见?

2 个答案:

答案 0 :(得分:2)

@ JC997有一个很好的答案,但我想改进。

使用setWidth和setHeight时,不会阻止用户调整整个窗口的大小。在这种情况下,将 setResizeable(false)与以下代码组合起来也不会有帮助。

您应该应用最低最高值来实际达到您想要的效果,请使用此

Rectangle2D primaryScreenBounds = Screen.getPrimary().getVisualBounds();
stage.setX(primaryScreenBounds.getMinX());
stage.setY(primaryScreenBounds.getMinY());

stage.setMaxWidth(primaryScreenBounds.getWidth());
stage.setMinWidth(primaryScreenBounds.getWidth());

stage.setMaxHeight(primaryScreenBounds.getHeight());
stage.setMinHeight(primaryScreenBounds.getHeight());

答案 1 :(得分:1)

如果您希望舞台无法调整大小并最大化,任务栏可见,您可以使用此代码:

Rectangle2D primaryScreenBounds = Screen.getPrimary().getVisualBounds();
stage.setX(primaryScreenBounds.getMinX());
stage.setY(primaryScreenBounds.getMinY());
stage.setWidth(primaryScreenBounds.getWidth());
stage.setHeight(primaryScreenBounds.getHeight());

这样做,正在寻找屏幕边界,并将任务栏考虑在内。