如何获得真正可用的分辨率

时间:2010-09-16 14:20:47

标签: java swing window size

Toolkit.getDefaultToolkit().getScreenSize()

我确实屏幕大小。

但通常这不是我自己的程序可用的大小,因为在Mac上有一个顶部的菜单栏和一个底部的图标栏。 Windows确实有一个图标栏。那么我如何获得真正的可用空间呢?

2 个答案:

答案 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