【发布时间】:2011-04-13 06:11:52
【问题描述】:
有
Toolkit.getDefaultToolkit().getScreenSize()
我知道屏幕尺寸。
但通常这不是我自己的程序可用的大小,因为在 mac 上,顶部有一个菜单栏,底部有一个图标栏。 Windows 也有一个图标栏。那么如何获得真正的可用空间呢?
【问题讨论】:
有
Toolkit.getDefaultToolkit().getScreenSize()
我知道屏幕尺寸。
但通常这不是我自己的程序可用的大小,因为在 mac 上,顶部有一个菜单栏,底部有一个图标栏。 Windows 也有一个图标栏。那么如何获得真正的可用空间呢?
【问题讨论】:
来自Java forum:
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
Rectangle bounds = ge.getMaximumWindowBounds();
现在您已经拥有了不受平台依赖的桌面装饰的限制。我没有 Mac,所以我只验证了它可以在 WinXP/JDK6 上运行。
请注意,如果您自动隐藏任务栏,则边界不包括任务栏,这是正确的。
【讨论】:
GraphicsEnvironment有什么影响。
GraphicsEnvironment 部分放在外观和感觉之后
我不确定这是否可行,但请尝试使用 GraphicsConfiguration/GraphicsDevice。您可能无法在 OS X 上获得一个打折扩展坞的边界框,因为扩展坞的区域仍被视为屏幕空间。我可以在上面移动窗户。我还可以将扩展坞移动到侧面而不是屏幕底部(Windows 任务栏也是如此)。
http://download.oracle.com/javase/6/docs/api/java/awt/GraphicsDevice.html
【讨论】: