Java 获取没有GraphicsDevice.getConfigurations()的桌面边界
我是Java新手,正在尝试确定GraphicsDevice.getDefaultConfiguration与GraphicsDevice.getConfigurations返回的内容有何不同 一些用户在启动应用程序时速度严重减慢。我发现了一台机器,它再现了我认为是由这个问题引起的问题 这让我想知道是否可以避免使用GraphicsDevice.getConfigurations。我只需要知道桌面的边界,我看到两种方法。他们似乎在我所有的测试中都做同样的事情,但我希望有知识的人能告诉我在某些情况下是否会有不同的行为 方法1Java 获取没有GraphicsDevice.getConfigurations()的桌面边界,java,graphics2d,Java,Graphics2d,我是Java新手,正在尝试确定GraphicsDevice.getDefaultConfiguration与GraphicsDevice.getConfigurations返回的内容有何不同 一些用户在启动应用程序时速度严重减慢。我发现了一台机器,它再现了我认为是由这个问题引起的问题 这让我想知道是否可以避免使用GraphicsDevice.getConfigurations。我只需要知道桌面的边界,我看到两种方法。他们似乎在我所有的测试中都做同样的事情,但我希望有知识的人能告诉我在某些情况下是
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仍然会在返回的矩形中包含额外的显示器。虽然无法复制,但它可能是硬件特定的,或者修补程序已经修复了它。