JavaFX 未修饰的阶段和 setMaximized 错误

问题描述 投票:0回答:1
stage.initStyle(StageStyle.UNDECORATED);
stage.setMaximized(true);

舞台设置为全屏,通过重叠完全忽略停靠栏(macOS)和任务栏(Windows)

看起来像一个 javafx bug。

有什么想法吗?

javafx
1个回答
0
投票

OS X 上存在一个有关最大化未修饰阶段的错误,该错误已在 JavaFX 22 中修复:

同样,对于 Linux(在 JavaFX 16 中修复):

进一步的开发人员讨论是关于相关的拉取请求:

我在 OS X 14.4 上尝试了来自 JDK-8255835 的示例测试应用程序:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.stage.StageStyle;

public class MaximizedStage extends Application {
    public void start (Stage stage) {
        StackPane sp = new StackPane(new Label("Hello"));
        stage.setScene(new Scene (sp, 500, 500));
        stage.initStyle(StageStyle.UNDECORATED);
        stage.show();
        stage.setMaximized(true);
    }
}

使用 JavaFX 21,最大化的未修饰窗口错误地显示为大小 500x500。

使用 JavaFX 22,最大化的未修饰窗口正确显示,覆盖全屏 除了停靠栏和标题栏区域,它们仍然可见

© www.soinside.com 2019 - 2024. All rights reserved.