Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检测主显示器的可用部分';普通窗口有什么可用的?_Java_Desktop - Fatal编程技术网

Java 如何检测主显示器的可用部分';普通窗口有什么可用的?

Java 如何检测主显示器的可用部分';普通窗口有什么可用的?,java,desktop,Java,Desktop,在大多数桌面环境中,您有一个或多个操作栏,有时还有停靠的窗口 一个最大化的窗口将使用屏幕一侧这些不同事物未使用的所有空间。这就是我所说的“可用空间” 是否有java API来检测可用空间,如果可能,还可以监听可能发生的更改?基本思想是获取对屏幕设备的引用,并从屏幕边界中减去屏幕插入,如下所示 GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsDevice gd = ge.getD

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

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


是否有java API来检测可用空间,如果可能,还可以监听可能发生的更改?

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

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);

}
现在,您的下一个问题将是确定您实际需要的屏幕设备,此示例使用默认屏幕;)