与
Toolkit.getDefaultToolkit().getScreenSize()
我确实屏幕大小。
但通常这不是我自己的程序可用的大小,因为在Mac上有一个顶部的菜单栏和一个底部的图标栏。 Windows确实有一个图标栏。那么我如何获得真正的可用空间呢?
答案 0 :(得分:9)
来自Java forum:
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
Rectangle bounds = ge.getMaximumWindowBounds();
现在,您可以使用与平台相关的桌面装饰。我没有Mac,所以我只验证它适用于WinXP / JDK6。
请注意,如果您自动隐藏任务栏,则界限不包括任务栏,这是正确的。
答案 1 :(得分:1)
我不确定这是否可行,但请尝试使用GraphicsConfiguration / GraphicsDevice。您可能无法获得在OS X上对Dock进行折扣的边界框,因为Dock的区域仍被视为屏幕空间。我可以在它上面移动窗户。我也可以将底座移到侧面而不是屏幕底部(Windows任务栏也是如此)。
http://download.oracle.com/javase/6/docs/api/java/awt/GraphicsDevice.html