我想创建一个带有自定义标题栏(带有用于最小化,全屏模式和关闭的按钮的标题栏)的应用程序,它当然是特定于OS的。但是我目前只想要Windows。
我进行了研究,发现无法更改默认的操作系统标题栏,但可以通过setUndecorated(true)删除它。所以我做到了,发现它隐藏了任务栏并覆盖了整个屏幕。我知道我可以设置固定大小,但是我意识到所有Windows PC的屏幕大小都不相同。我希望它像setExtendedState(JFrame.MAXIMIZED_BOTH)一样工作,当我未修饰为真时,这样做不起作用...
是否有什么办法可以使其保持未修饰状态,不隐藏任务栏并同时全屏显示?对不起,我的英语,我的不好:-)
答案 0 :(得分:1)
您可以使用GraphicsEnvironment类获取带有/不带有任务栏的屏幕尺寸:
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
Rectangle bounds = env.getMaximumWindowBounds();
System.out.println("Screen Bounds: " + bounds );
GraphicsDevice screen = env.getDefaultScreenDevice();
GraphicsConfiguration config = screen.getDefaultConfiguration();
System.out.println("Screen Size : " + config.getBounds());
答案 1 :(得分:1)
如果您使用的是JavaFX,则可以使用the Screen
class来获取主屏幕的视觉边界,并手动移动/调整舞台大小:
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();