Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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 获取没有GraphicsDevice.getConfigurations()的桌面边界_Java_Graphics2d - Fatal编程技术网

Java 获取没有GraphicsDevice.getConfigurations()的桌面边界

Java 获取没有GraphicsDevice.getConfigurations()的桌面边界,java,graphics2d,Java,Graphics2d,我是Java新手,正在尝试确定GraphicsDevice.getDefaultConfiguration与GraphicsDevice.getConfigurations返回的内容有何不同 一些用户在启动应用程序时速度严重减慢。我发现了一台机器,它再现了我认为是由这个问题引起的问题 这让我想知道是否可以避免使用GraphicsDevice.getConfigurations。我只需要知道桌面的边界,我看到两种方法。他们似乎在我所有的测试中都做同样的事情,但我希望有知识的人能告诉我在某些情况下是

我是Java新手,正在尝试确定GraphicsDevice.getDefaultConfiguration与GraphicsDevice.getConfigurations返回的内容有何不同

一些用户在启动应用程序时速度严重减慢。我发现了一台机器,它再现了我认为是由这个问题引起的问题

这让我想知道是否可以避免使用GraphicsDevice.getConfigurations。我只需要知道桌面的边界,我看到两种方法。他们似乎在我所有的测试中都做同样的事情,但我希望有知识的人能告诉我在某些情况下是否会有不同的行为

方法1

Rectangle result = new Rectangle();
for (GraphicsDevice graphicsDevice : graphicsEnv.getScreenDevices()) {
   for (GraphicsConfiguration graphicsConfiguration :  graphicsDevice.getConfigurations()) {
      Rectangle2D.union(result, graphicsConfiguration.getBounds(), result);
   }
}
方法2

GraphicsEnvironment graphicsEnv =   GraphicsEnvironment.getLocalGraphicsEnvironment();
Rectangle result = new Rectangle();
for (GraphicsDevice graphicsDevice : graphicsEnv.getScreenDevices()) {
        Rectangle2D.union(result,  graphicsDevice.getDefaultConfiguration().getBounds(), result);
}

方法2在再现用户减速的机器上要快得多。有什么理由不使用它吗?

我会说简短的答案是没有,没有理由谢谢。根据我的测试,它们的工作原理是一样的。做出更改的人说,使用方法2,如果您有一台带有额外显示器的笔记本电脑,并且将其卸下,方法2仍然会在返回的矩形中包含额外的显示器。虽然无法复制,但它可能是硬件特定的,或者修补程序已经修复了它。