Javafx stage可调整大小的false和最大化的true隐藏任务栏

Javafx stage可调整大小的false和最大化的true隐藏任务栏,java,javafx-8,Java,Javafx 8,在我的JavaFX FXML应用程序中,当我将Resizeable设置为false并将maximized设置为true时,窗口将最大化,但任务栏将隐藏。我正在Windows 7 64位上使用Netbeans 8.0.2和JDK 1.8.60 在Netbeans中,我按照以下步骤创建了一个新的JavaFX FXML应用程序。在生成的默认代码中,我在start函数中添加了以下两行代码 stage.setResizable(false); stage.setMaximized(true); 因此,最

在我的JavaFX FXML应用程序中,当我将Resizeable设置为false并将maximized设置为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();
}

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

如果您希望舞台不可调整大小和最大化,任务栏可见,您可以使用以下代码我认为:

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

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

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

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

您应该应用MinMax值来实际实现您想要的目标,请使用

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

我不能复制这个-您的代码正确地最大化了窗口,标题按钮仍然显示。仅当我替换
stage.setMaximized(true)时带有
stage.setFullScreen(真),该窗口正确显示为全屏,没有标题按钮,并带有一个注释窗口,可按ESC键关闭全屏模式。您的
.fxml
文件中是否有任何异常情况?理想情况下,我们可以直接在
javac
中发布一个帖子来重现这个问题。在Netbeans中,我按照步骤创建了一个新的应用程序,并在生成的默认代码中添加了可调整大小和最大化的代码。因此,在上面的代码中,您会收到类似“按ESC关闭全屏模式”的通知,最大化窗口不包含一个标题栏,标题栏上有常用的关闭和最小化按钮?您使用的是哪个窗口系统,哪个操作系统,您的确切JDK版本是什么?我可以看到标题栏,窗口已最大化,但无法看到任务栏。我正在使用JDK1.8.60