在没有GraphicsDevice.getConfigurations()的情况下获取桌面边界

时间:2015-04-08 23:42:57

标签: java graphics2d

我是Java新手并试图确定GraphicsDevice.getDefaultConfiguration()与GraphicsDevice.getConfigurations()返回的不同。

有些用户在开始申请时会严重减速。我发现一台机器可以重现我认为是https://bugs.openjdk.java.net/browse/JDK-6477756

引起的问题

这让我想看看是否可以避免使用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在重现用户减速的机器上快得多。有没有理由不使用它?

0 个答案:

没有答案