stage.initStyle(StageStyle.UNDECORATED);
stage.setMaximized(true);
舞台设置为全屏,通过重叠完全忽略停靠栏(macOS)和任务栏(Windows)
看起来像一个 javafx bug。
有什么想法吗?
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,最大化的未修饰窗口正确显示,覆盖全屏 除了停靠栏和标题栏区域,它们仍然可见。