【问题标题】:How do I get the real usable resolution如何获得真正可用的分辨率
【发布时间】:2011-04-13 06:11:52
【问题描述】:

Toolkit.getDefaultToolkit().getScreenSize()

我知道屏幕尺寸。

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

【问题讨论】:

    标签: java swing window size


    【解决方案1】:

    来自Java forum

    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    Rectangle bounds = ge.getMaximumWindowBounds();
    

    现在您已经拥有了不受平台依赖的桌面装饰的限制。我没有 Mac,所以我只验证了它可以在 WinXP/JDK6 上运行。

    请注意,如果您自动隐藏任务栏,则边界不包括任务栏,这是正确的。

    【讨论】:

    • @Geoffrey 这有改变应用程序外观的副作用,对吗?这是必要的吗?不明白对本地GraphicsEnvironment有什么影响。
    • @muffin 我想他们只是告诉你把GraphicsEnvironment 部分放在外观和感觉之后
    【解决方案2】:

    我不确定这是否可行,但请尝试使用 GraphicsConfiguration/GraphicsDevice。您可能无法在 OS X 上获得一个打折扩展坞的边界框,因为扩展坞的区域仍被视为屏幕空间。我可以在上面移动窗户。我还可以将扩展坞移动到侧面而不是屏幕底部(Windows 任务栏也是如此)。

    http://download.oracle.com/javase/6/docs/api/java/awt/GraphicsDevice.html

    【讨论】:

    • 我的回答只是向前迈出了一小步。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-21
    • 1970-01-01
    • 2014-11-23
    • 2013-09-30
    • 2014-10-25
    • 2018-07-04
    相关资源
    最近更新 更多