首页 > 解决方案 > 未装饰的窗户覆盖整个屏幕

问题描述

我想创建一个带有自定义标题栏的应用程序(带有最小化、全屏模式和关闭按钮的应用程序),这当然是特定于操作系统的。但我目前只希望在 Windows 上使用它。

我进行了研究,发现我无法更改默认的操作系统标题栏,但我可以通过 setUndecorated(true) 将其删除。所以我做了它,发现它隐藏了任务栏并覆盖了整个屏幕。我知道我可以设置一个固定大小,但我意识到所有 Windows PC 的屏幕大小都不相同。我希望它像 setExtendedState(JFrame.MAXIMIZED_BOTH) 一样工作,当我这样做时,当 undecorated 是真的时它不起作用......

有没有办法让它保持不装饰,不隐藏任务栏,同时全屏显示?对不起我的英语,我的不好:-)

标签: javajavafx

解决方案


如果您使用的是 JavaFX,则可以使用该类Screen获取主屏幕的视觉边界并手动移动/调整舞台大小:

stage.initStyle(StageStyle.UNDECORATED);

Rectangle2D bounds = Screen.getPrimary().getVisualBounds();

stage.setX(bounds.getMinX());
stage.setY(bounds.getMinY());
stage.setWidth(bounds.getWidth());
stage.setHeight(bounds.getHeight());

stage.show();

推荐阅读