我需要一个未装饰的 JFrame( setUndecorated(true) ),它需要全屏显示,而不与任务栏重叠。
我尝试了以下解决方案。
调用 setExtendedState(MAXIMIZED_BOTH)。
- 优点:这可以正常工作,即窗口正在动态调整,除了它有以下问题。
- 问题 最初窗口占据全屏 虽然框架会自行动态调整,但它与任务栏重叠。
尝试了以下解决方案,如JFrame.setExtendedState(MAXIMIZED_BOTH) 是否适用于未装饰的框架?
GraphicsConfiguration config = aFrame.getGraphicsConfiguration(); Rectangle usableBounds = SunGraphicsEnvironment.getUsableBounds(config.getDevice()); aFrame.setBounds(0, 0, usableBounds.width, usableBounds.height);
- 优点:我没有重叠,窗口看起来很好。
- 问题:更改任务栏位置/大小时,窗口不会动态调整自身。
任何帮助将不胜感激。
我想到了一个设计。但不确定其可行性。我可以使用 setBounds()。但是,当调整或重新定位任务栏时,我需要通知我的框架。有办法吗?