0

在大多数桌面环境中,您有一个或多个操作栏,有时还有停靠窗口。

最大化的窗口将使用屏幕侧面这些不同事物未使用的所有空间。这就是我所说的“可用空间”

是否有 java API 来检测可用空间,并在可能的情况下监听可能发生的变化?

4

1 回答 1

1

基本思想是获取屏幕设备的引用并从屏幕边界中减去屏幕插图,如下所示

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gd = ge.getDefaultScreenDevice();

Rectangle bounds = new Rectangle(0, 0, 0, 0);

if (gd != null) {

    GraphicsConfiguration gc = gd.getDefaultConfiguration();
    bounds = gc.getBounds();

    Insets insets = Toolkit.getDefaultToolkit().getScreenInsets(gc);

    bounds.x += insets.left;
    bounds.y += insets.top;
    bounds.width -= (insets.left + insets.right);
    bounds.height -= (insets.top + insets.bottom);

}

现在,您的下一个问题将是确定您真正想要的屏幕设备,此示例简单使用默认屏幕;)

于 2012-11-09T21:00:11.613 回答